c++ - T的类型是什么?

标签 c++ templates

在下面的代码中:

template<typename T>
struct X {};

int main()
{
  X<int()> x; // what is the type of T ?
}

T 的类型是什么?我在 boost 来源中看到了类似的内容。

最佳答案

考虑函数 int func()。它有一个函数类型 int(void)。正如 C++ 标准在 4.3/1 中所说,它可以隐式转换为指针类型,但在这种情况下不需要进行这种转换,因此 T 的函数类型为 int(void),而不是指向它的指针。

关于c++ - T的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530470/

相关文章:

c++ - 用于存储和访问结构指针的正确 Qt 数据结构

c++ - 结合多种数据类型来制定数据包

c++ - 可以在模板参数中使用 decltype 吗?

C++ 为输入类型选择模板输出类型

c++ - 如何使用 new 运算符检查内存分配失败?

c++ - 带有 QTreeView 模型的 Qt itemChanged 信号仅适用于第一级项目

c++ - 编译时的模板和 constexpr 推导取决于编译器和优化标志

c++ - 打开模板参数 : does gcc remove the switch?

c++ - vkEnumerate* 的正确两次调用模式是什么?

c++ - HASH 函数和实现多键 HashMap