Здравствуйте, koenjihyakkei, Вы писали:
K>K>error: implicit instantiation of undefined template 'Foo<64>'
K>
K>Но мне кажется есть более простой вариант сделать это проще и сразу на месте, без объявления класса?
Можно использовать несоответствие типов формальных и фактических параметров, чтоб спровоцировать ошибку вида: "cannon convert 'A' to 'B'". Осталось только подобрать какую-нибудь функцию, желательно из стандартной библиотеки, чтоб не объявлять свои. Нарпимер printf:
http://coliru.stacked-crooked.com/a/0175402ff442e85d
const int ParameterToPrint = 42;
std::printf(std::integral_constant<int, ParameterToPrint>{});
MSVC: "cannot convert argument 1 from 'std::integral_constant<int,42>' to 'const char*"
GCC: "invalid user-defined conversion from 'std::integral_constant<int, 42>' to 'const char*'"