Я использую Clang, который поставляется в комплекте с Xcode 9.3, и я пытаюсь понять, является ли следующий результат преднамеренной частью изменений C ++ 17:
#include <iostream>
template<typename T> struct Test {
static const int TEN;
};
template<typename T> constexpr int Test<T>::TEN = 10;
int main(int argc, const char * argv[]) {
std::cout << Test<int>::TEN << std::endl;
return 0;
}
При компиляции сc ++ 11 или c ++ 14, это печатает "10".Однако, компилируя это с c ++ 17, это печатает «0».
Что происходит?