Во время экспериментирования с последним компилятором g++ - 5 я написал инструкцию ниже в файле:
template<T> T a;
template<> int a = 1;
Результат:
предупреждение: слишком много заголовков шаблонов для
a
(должно быть 0)
Также эффективно, он не специализируется на a<int>
. например.
template<typename T> T a;
template<> int a = 1;
int main () {
std::cout << a<double> << "\n"; // prints 0; OK
std::cout << a<int> << "\n"; // prints 0! why not 1?
}
В чем тайна этого синтаксиса?