Item7 Distinguish between () and {} when creating objects

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在引入C++11后变量的初始化方式多种多样,对于每种初始化的方式的区别和联系是一个让我很迷惑地方 int x(0); int y = 0; int z{0}; int c = {0};c++通常把c = {0}这种初始化方式...
阅读(308) 评论(0)

Item6 Use the explicitly typed initializer idiom when auto deduces undesied types

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在Item5中提到了使用auto所带来的诸多优点,在Item2中提到了auto的类型推导规则和模板类型推导基本一致,推导出来的类型有的时候并不是我们所想要的类型(会忽略CV限制符和引用),那么本文继续探究auto的其它缺点。std::ve...
阅读(346) 评论(0)

Item5 Prefer auto to explicit type declarations

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 写C/C++的程序员都知道定义一个变量如果没有给初值会导致这个变量的值是未定义的,这往往是bug的源泉,在使用容器的迭代器的时候,需要定义一个迭代器变量这个变量的类型很冗长,如下的代码应该经常可以碰到。vector::itera...
阅读(306) 评论(0)

Item4 Know how to view deduced types

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在Item3中学习了C++11新特性decltype,decltype可以获取变量或者表达式的类型,但是获取到的类型只能用于定义其他的变量和类型,不能打印出来,也不能用来操作。毕竟是编译期实现,用来做类型反射就算了,那么至少也应该可以打印...
阅读(330) 评论(0)

Item3 Understand decltype

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 decltype用于用来推导变量的类型,但是不像auto和模板类型推导那样,存在很多类型推导规则,decltype推导出来的类型和变量原来的类型一模一样,没有做任何改动。在C++11中decltype结合auto还可以完成函数返回值的类型...
阅读(501) 评论(0)

Item2 Understand auto type deduction

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在Item1中介绍了C++98的模板类型推导,C++11中引入的auto其类型推到规则和模板类型推到如出一辙。在Item1中提到,模板类型推导规则可以总结为如下形式:template void f(`参数类型` p...
阅读(430) 评论(0)
    个人资料
    • 访问:92952次
    • 积分:2039
    • 等级:
    • 排名:千里之外
    • 原创:111篇
    • 转载:0篇
    • 译文:1篇
    • 评论:24条
    博客专栏
    最新评论