not a constant expressionint const i = { 42 };据我所知,使用和不带大括号的int的初始化应该是等效的。Clang将i正确初始化为42,只是不认为它是编译时间常数。是否有理由将j视为编译时常量,而i则不是?还是仅仅是Clang的一个bug?更新:i在LLVM错误跟踪器中使用此问题打开了一个。
在C++14中声明引用模板而不初始化主引用模板是合法的,只要它从未被实例化?with any value of any type";
auto ref<int> = 1;
因为显然GCC和Clang都接受但忽略了引用模板初始化器任何类型的表达式都满足Clang的初始化要求。
只要主引用模板从未实例化,GCC就不需要初始化<em