c++
文章平均质量分 62
morning_color
这个作者很懒,什么都没留下…
展开
-
Effective Modern C++ Item1 模板类型推导详解
函数模板举例一般的函数模板的声明如下所示:template<typename T>void f(ParamType param);其调用的方法为:f(expr); // call f with some expression在编译期间, 编译器会使用expr推导出两个类型: T 和 ParamType.通常来讲,这两个类型是不同的,因为ParamType往往带有其它的修饰符, 举例如下:t翻译 2015-12-15 14:44:10 · 1040 阅读 · 0 评论 -
巧用enum来获取std::tuple中的元素
今天看Scott Meyers的《Effective Modern C++》的Item 10: Prefer scoped enums to unscoped enums 。他建议我们在获取std::tuple中的元素时(利用std::get()),可以用unscoped enums来代替索引值index,这样可以增强程序的可读性,原例如下:using UserInfo =std::tuple<s原创 2015-12-18 17:42:24 · 1581 阅读 · 0 评论 -
Effective Modern C++ Item2 理解auto类型推导
auto类型推导在c++11之后, 我们可以通过auto关键字来定义一个变量,使我们可以免于显式地声明其类型,让编译器在编译时自动推导该变量的类型。如果你已经读过了 Effective Modern C++ Item1 模板类型推导详解 ,那么,除了一种特殊的情况外(初始化列表std::initializer_list),其实你已经知晓了关于auto类型推导的全部内容,因为auto类型推导实际上就是原创 2015-12-22 15:06:38 · 803 阅读 · 0 评论 -
C++ shared_ptr源码剖析
/** * @brief A smart pointer with reference-counted copy semantics. * * The object pointed to is deleted when the last shared_ptr pointing to * it is destroyed or reset. */sha原创 2015-12-25 22:40:02 · 1616 阅读 · 1 评论 -
c++11 constexpr常量表达式
在c++中,当我们用到常量时,往往是通过const关键字来修饰的:const int x = 3;但大多数情况下,const描述的都是一些“运行时常量”,即该变量具有运行时的不可修改性。不过有时候,我们需要某些变量在编译时保持常量性,如:const int size = 10;int arr[size]; //编译不通过常量表达式变量const关键字无法保证编译时的常量性,因此c++11引入了新原创 2015-12-27 16:23:10 · 1329 阅读 · 0 评论