C++类型特征
C++ Type Traits
我知道它们对有关您实例化它们的类型的信息进行编码,但它们是如何工作的呢?例如,类型特征std::is_class
。它是如何工作的?所有的实现看起来都是空的结构,我必须承认我挠头。
这些名称似乎具有足够的描述性,因此我可以理解它们的含义,但是使用类型特征的典型场景是什么?
我找不到有关该主题的介绍性资源(或有关SO的问题)。指点将不胜感激。
某些类型特征,例如std::is_class
仅使用编译器内部函数(也称为内置)。如果没有编译器的特殊支持,您无法自己编写这些内容。
类型特征在通用上下文中最有用 - 您可能希望根据类型的属性专门化内容,或对模板参数施加限制。例如,当迭代器是指向 POD 的指针时,std::copy
的实现可能会在内部使用 std::memcpy
而不是显式循环。这可以通过SFINAE实现。
相关文章:
- 如何将高维数据映射到特征类型?
- 将平面阵列重塑为复杂的特征类型
- 以特征类型作为参数的泛型函数回调
- 如何通过opencv中的程序参数定义特征类型?
- 在编译时检查特征类型保存的数据在内存中是否连续
- 专门针对特征类型的功能
- 具有特征类型输出的特征二进制 Expr
- 使用具有STL容器和STD :: vector的特征类型
- 从指针进行特征3类型的强制转换/复制(溢出uint8_t)
- 使用 python 扩展在 gdb 中打印特征类型时出现问题
- 将特征类型与 boost::bind 一起使用是否会自动违反 Eigen 的"only pass by reference"规则?
- NVIDIA NVCC 在使用模板特征类型时更改编译时间常量
- 固定大小的特征类型作为参数
- 特征类型类型定义失败,并显示 C4430
- 检查类型是否为特征 3 类型
- 传递std::迭代器,指向具有特征类型的向量
- visual studio 2012中对特征类型向量的自动矢量化表现不佳
- 子类特征类型
- 使用一个特征类型内提升图
- 特征c++类型转换