C++11
张小方32
这个作者很懒,什么都没留下…
展开
-
C++11中调用函数内部定义匿名lamda函数
#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ int i = 0; int j = 0; [i, j](int k, int j) { std::cout << k << ", " << j << std::endl; }(1, 2);原创 2018-01-05 21:29:38 · 1277 阅读 · 0 评论 -
关于std::shared_ptr与std::enable_shared_from_this循环引用导致的问题
自从C++11有了std::shared_ptr这样的智能指针,作为C++程序只要将一个堆上的类对象用std::shared_ptr包裹一下就可以做到内存自动释放了。看一个例子:#include "stdafx.h"#include class A{public: A() { m_i = 9; } ~A() { m原创 2017-12-21 18:47:41 · 2495 阅读 · 2 评论 -
关于std::move和std::forward
这篇文章介绍的真不错:http://www.cnblogs.com/catch/p/3507883.html总结起来:1. std::move是将左值变成右值减少不必要的拷贝;2. std::forward保持一个值的左值和右值特性不变,以变传给既能接受左值又能接受右值的函数,例:templateTYPE* acquire_obj(ARG&& arg){ return new TYPE(原创 2017-10-23 13:55:54 · 1146 阅读 · 0 评论 -
关于C++11中的std::XXX<void>
一般常见的有:std::sharedstd::weak_ptrstd::unique_ptrstd::function第一个、第二个和第三个的意思是:make a smart pointer which can point to many different types of data structures like structs, vectors, matrices... basically原创 2017-09-01 12:49:15 · 1894 阅读 · 0 评论 -
关于std::bind绑定栈变量对象的思考
我一直以为std::bind函数在给某个函数绑定参数时,如果参数是栈变量,且是类对象,等实际调用std::bind函数时,因为传递的栈变量参数已经不存在了,会导致程序崩溃,但实际上并不是这样,看代码:#include #include class A{public: A() { k = 11; std::cout << "A constru原创 2017-08-31 18:07:08 · 1425 阅读 · 0 评论 -
C++ 11 lessons
推荐一个学习 C++11 的博客:LESSON #1: ‘AUTO’LESSON #2: RANGE-BASED FORLESSON #3: UNIFORM INITIALIZATIONLESSON #4: SMART POINTERSLESSON #5: MOVE SEMANTICS原创 2019-10-06 14:15:31 · 765 阅读 · 0 评论