C++ Dos and Don'ts

最小化头文件 不要包含不必要的头文件尽量使用前向声明的方式,目的是为了减少编译时间What are forward declarations in C++?,并且在头文件发生改变的时候,减少重新编译的文件。 将内部类移动到实现中 // 内部类的声明 class Whatever { public: /* ... */ private: struct DataStruct; std::...
阅读(318) 评论(0)

Item32 Use Init capture to move objects into closures

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 一些时候Lambda的值拷贝和引用两张捕获模式都没有办法满足你的需要,比如当你有一个可移动的对象,你希望可以将这个对象移动到闭包中,因为值拷贝的效率不高,引用捕获的话会导致生命周期的问题。很可惜C++11并没有提供将对象移动到闭包...
阅读(258) 评论(0)

Item31 Avoid default capture modes

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ C++11中Lambda表达式给C++带来了很大的改变,通过Lambda可以很方便的创建一个函数对象,这对于C++的开发来说影响是巨大的,比如可以很方便的结合STL的一些算法,不用再单独创建函数来用,还有可以很好的结合std::u...
阅读(247) 评论(0)

Item30 Familiarize yourself with perfect forwarding failure cases

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在C++11中最为显著的一个新特性,当属完美转发了,是的它很完美,和它的名字一样,转发两字意味着一个函数将其参数传递给另外一个函数,第二个函数的目标则是接收来自于第一个函数传递过来的对象,转发二字体现出第二个函数接收到的对象应该和...
阅读(238) 评论(0)
    个人资料
    • 访问:92952次
    • 积分:2039
    • 等级:
    • 排名:千里之外
    • 原创:111篇
    • 转载:0篇
    • 译文:1篇
    • 评论:24条
    博客专栏
    最新评论