知识卡片

类型特性在编译期变换

普通读书笔记卡 · 1411

内容

type traits 通过模板查询或变换类型,如去除引用、判断是否为整型,结果用于编译期选择。C++11 常通过嵌套 type 提取变换结果,C++14 提供简洁别名。它们操纵的是类型信息,不是运行期修改对象。

参考来源

- 位置:《Effective Modern C++》第3章《移步现代C++》,条款九:优先考虑别名声明而非 typedef s(源文件:_epub-src/EPUB/text/ch004.xhtml) - 结论依据:原文把type traits列为类型变换与查询工具,并说明嵌套type和别名写法的区别。 - 原始内容:C++11在 type traits (类型特性)中给了你一系列工具去实现类型转换,如果要使用这些模板请包含头文件 <type_traits> 。里面有许许多多 type traits ,也不全是类型转换的工具,也包含一些可预测接口的工具。给一个你想施加转换的类型 T ,结果类型就是 std:: transformation <T>::type ,比如: