Здравствуйте, Went, Вы писали:
VTT>>>Просто это не переменные а две специализации шаблона переменной, состоящие из имени шаблона и списков параметров шаблона, заключенных в угловые скобки.
BFE>>В том-то и дело, что тип таких переменных не зависит от их специализации. Просто у этих переменных имена сложные, составные.
W>Ну, вроде бы шаблоны переменных вводили для типизированных констант и разных трейтов? Фактически, синтаксический сахар над:
Это, да, но результат чудной.
W>Не? Есть еще какие-то принципиально новые применения?
А вот, только что придумал:
#include <iostream>
template<class T>
T x = T{};
void f()
{
class Test{ public: Test(){std::cout << "Test\n";} };
Test t = x<Test>;
}
int main()
{
std::cout << "start\n";
return 0;
}
Какой, думаете, будет вывод такой программы?
Похоже, что можно, таки, заставить выполнятся локальный код в глобальном пространстве. Возможно, что так было всегда, просто синтаксического сахара для мозгов не хватало...