ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
3 мая
1042632 Топик полностью
Kabdim (07.10.2020 15:24, просмотров: 372) ответил йцyкeн на Если это C++, то конечно статическая. То же самое, что int i = 0;
А если: #define MAKE_VAR(a,b) auto a = b MAKE_VAR(i, 0); ---- А почему тогда статическая типизация ломается в таком (к примеру) выражении 

auto i = std::vector{1};

?

----

Вы ведь не сможете потом этой переменной присвоить что-то кроме vector<int>, не сможете запихнуть в этот вектор что-то кроме других int. Да, в векторе не пишется впрямую что он может работать с int или чем-то еще. Но язык не гарантирует что какой-то шаблон будет работать с любыми типами, он может быть очень избирательным и работать хоть строго с одним. Шаблон это отнюдь не компилируемый код до тех пор пока он не будет специфицирован, примерно как и макросы, только по другому.