Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有推断类模板专用化类型的变量的声明符中的冗余括号_C++_Templates_Language Lawyer_Ctad - Fatal编程技术网

C++ 具有推断类模板专用化类型的变量的声明符中的冗余括号

C++ 具有推断类模板专用化类型的变量的声明符中的冗余括号,c++,templates,language-lawyer,ctad,C++,Templates,Language Lawyer,Ctad,以下 模板 结构S{}; S(S);; 由GCC编译,只有一个关于声明符周围的冗余括号的警告。但是,Clang为声明提供了一个硬错误 错误:在声明派生类模板专用化类型的变量时不能使用括号 这是一个非常具体的错误(例如,S(S);compiles),所以我想这是故意的,但我找不到表示这是格式错误的措辞。显而易见的候选人喜欢这个,除非我错过了,否则就什么也不说 这是一个GCC错误,还是IFNDR,而Clang很有帮助?这似乎是由于禁止所有声明器操作符(而不仅仅是那些更改声明类型的操作符)而急切地应

以下

模板
结构S{};
S(S);;
由GCC编译,只有一个关于声明符周围的冗余括号的警告。但是,Clang为声明提供了一个硬错误

错误:在声明派生类模板专用化类型的变量时不能使用括号

这是一个非常具体的错误(例如,
S(S);
compiles),所以我想这是故意的,但我找不到表示这是格式错误的措辞。显而易见的候选人喜欢这个,除非我错过了,否则就什么也不说


这是一个GCC错误,还是IFNDR,而Clang很有帮助?

这似乎是由于禁止所有声明器操作符(而不仅仅是那些更改声明类型的操作符)而急切地应用了Clang。诊断最棘手的解析问题的启发式方法也可能发挥作用

template <typename = int>
struct S {};

S (s);