g++ variadic template issue
问题 So I gave this program to g++ and clang (both on Linux, x86_64): #include <iostream> using namespace std; template<char... Cs> struct A { static const string s; static A a; ~A() { cout << "s = " << s << "\n"; } }; template<char... Cs> const string A<Cs...>::s = {{Cs...}}; template<char... Cs> A<Cs...> A<Cs...>::a; int main(void) { (void)A<'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'>::a; return 0; } Clang outputs s = aaaaaaaaaaaaaaaa (as expected). g++