在下一个程序中,第二个非类型模板参数 struct A
初始化为{}
在别名模板 B<T>
中:
template<class T, T>
struct A{};
template<class T>
using B = A<T, {}>;
B<int> b;
GCC 是唯一接受这一点的编译器。 Clang 和 MSVC 都拒绝了具有类似错误的程序。铿锵:
error: expected expression
MSVC:
error C2760: syntax error: '{' was unexpected here; expected 'expression'
演示:https://gcc.godbolt.org/z/6bc3sx451
这里是哪个编译器?
最佳答案
关于c++ - C++ 中的非类型模板参数可以使用大括号初始值设定项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70729816/