Да, и код выглядит очень похоже: вы объявляете (но не определяете) template struct
, значение которого является параметром шаблона.Пытаясь создать его экземпляр, не определяя его, вы получаете ошибку компилятора, в которой записано постоянное значение:
template <int val>
struct PrintConst;
PrintConst<12*34> p;
При компиляции этого кода g++
завершается ошибкой со следующей ошибкой:
const-display.cpp:4:19: error: aggregate ‘PrintConst<408> p’ has incomplete type and cannot be defined
PrintConst<12*34> p;
^
Обратите внимание, что оно показывает как выражение 12*34
, так и полученное значение 408
.