float(int)const的类型特征
Type traits of float (int) const
当我尝试自己实现类型特征时,我将结果与std <type_traits>
进行了比较。我试着检查类型float (int) const
的类型特征,我认为这应该是函数。我得到了奇怪的结果,所以我试图将这种类型传递给std类型的特征。这是我的测试代码:
std::cout << std::is_function<float (int) const>::value;
std::cout << std::is_compound<float(int) const>::value;
std::cout << std::is_pointer<float(int)const>::value;
std::cout << std::is_class<float(int)const>::value;
std::cout << std::is_union<float(int)const>::value;
std::cout << std::is_member_pointer<float(int)const>::value;
std::cout << std::is_array<float(int)const>::value;
std::cout << std::is_scalar<float(int)const>::value;
std::cout << std::is_enum<float(int)const>::value;
std::cout << std::is_object<float(int)const>::value;
该测试的输出如下:
0100000001
意思是,这种类型是复合的&对象,但不是标量。根据http://www.cplusplus.com/reference/type_traits/,它应该是类、并集或数组,但这些都不是真的。这种类型的正确结果应该是什么?我正在使用MSVC 2015。
这是MSVS实现中的一个错误;CCD_ 3既是函数又是化合物。
如果它还没有(似乎还没有),请在Connect上提起它。
我怀疑后面的const
(应该被忽略/剥离)正在抛出问题。
相关文章:
- 根据C++标准的定义实现"is_similar"类型特征
- C++类型特征,以查看是否可以<uint32_t>对类型"K"的任何变量调用"static_cast(k)"
- C ++类型特征:确保子类实现方法
- 根据类型特征更改函数定义?
- 如何使用类型特征将函数的通用引用参数限制为 r 值引用?
- 在C++中创建新的类型特征
- 如何构造一个类型特征,可以判断一个类型的私有方法是否可以在另一个类型的构造函数中调用?
- std::begin-类型特征中未考虑用户定义的重载
- 在类型特征修改后,无法限定类型
- 使用类型特征的部分类专用化
- 为什么不调用预期的函数?我是否对类型特征的理解不正确?
- 了解类型特征的体系结构
- 为什么使用某些类型特征的模板类型会导致模板扣除失败
- 有了C++类型特征,有没有办法避免铸造
- 哪种类型特征表明该类型是可分配的?(元组,对)
- 一种类型特征,标识哪个类提供通过重载解析选择的函数
- 如何使用类型特征正确推断引用的参数
- 如何通过扩展以下类型特征来删除 decltype(&MyClass::funct) 部分?
- 从标准库类型特征继承
- 为什么类型特征不适用于命名空间范围内的类型?