float (int) const 的类型特征

Type traits of float (int) const

当我尝试自己实现类型特征时,我将结果与标准 <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/,应该是class,联合或数组,其中none为真。这种类型的正确结果应该是什么?我正在使用 MSVC 2015。

这是 MSVS 实现中的错误; float(int) const is both function and compound.

如果它不存在(它似乎不存在),请在连接上提出它。

我怀疑尾随的 const(应该是 ignored/stripped)正在抛出问题。