float(int)const的类型特征

Type traits of float (int) const

本文关键字:类型 特征 const int float      更新时间:2023-10-16

当我尝试自己实现类型特征时,我将结果与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(应该被忽略/剥离)正在抛出问题。