0%

本文包含《Effective Modern C++》中第5章内容的个人笔记,讨论C++11标准中引入的右值引用相关问题。

第5章 右值引用、移动语义和完美转发

条款23: 理解std::move和std::forward

move只是将实参强制转换为右值,其行为大致为:

阅读全文 »

本文包含《Effective Modern C++》中第4章内容的个人笔记,讨论现代C++中智能指针使用问题。

第4章 智能指针

c++11标准增加了新版的智能指针unique_ptr、shared_ptr、weak_ptr,同时废弃了旧标准中的auto_ptr,本章着重介绍的就是这些新增智能指针需要注意的地方。

阅读全文 »

本文包含《Effective Modern C++》中第3章内容的个人笔记,讨论现代c++新增语法使用。

第3章 转向现代C++

条款7: 在创建对象时注意区分()和{}

C++11标准中增加了统一初始化,亦即使用大括号进行初始化。这种初始化方式可以防止隐式窄化型别转换,即如果需要执行窄化,则无法通过编译,该方式亦可避免形如

阅读全文 »

开个新坑,把读Effective Modern C++的读书笔记记录一下,与以往的形式不同这次是读完书很久再回头重读,预计通过五六篇博文来写这次总共42条条目的内容。
本文包含《Effective Modern C++》中第1、2章内容的个人笔记,讨论现代c++中型别自动推导相关内容。

第1章 型别推导

C++11引入了auto和decltype型别推导关键字,并在14标准中扩充完善了这两个关键字的使用场景。本章的目的就在于厘清这两个关键字的用法,并明确编译器在推导型别时的行为。

阅读全文 »

继上次的C++11的小结之后,很久没写些东西了(主要是懒…),那么这一次是C++14的小结。
C++14 作为一个小版本,功能上更像C++11的一个扩展版本,大部分是对11版本的一个完善。

语言特性

函数返回值推导

C++11标准中新增了类型推导功能,增加了auto和decltype关键字,但是在C++11标准中并不支持将返回值声明为auto,14标准扩展了该功能,14标准后可以将所有函数包括lambda表达式的返回值声明为auto。

阅读全文 »