我正在寻找能够知道一个类型的范围是否包含在另一个类型中的类型特征。 is_included_in<T,U>::value
的类型特征是true
当每个类型的值 T
可以存储为 U
类型的值.示例:
is_included_in<float,double>::value; // true
is_included_in<double,float>::value; // false
is_included_in<int,double>::value; // true
is_included_in<bool,long int>::value; // true
is_included_in<long long int,float>::value; // false
Boost 中有什么东西可以做到这一点吗?还是我自己写?
注意:出于兼容性原因,我不使用 C++11。
最佳答案
不,您必须自己制作。
话虽这么说,如果你想用它来使算术转换值安全,Boost 已经有了 numeric_cast
实现了这一点。
因此,根据您的目标,您可能不需要特质。
至少您可以检查 numeric_cast
实现并使用其原理来构建您自己的特征。
关于c++ - 类型之间是否有类型特征检查包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54109509/