Здравствуйте, Константин Л., Вы писали:
КЛ>must_be_initialized — это что? Первое что пришло в голову — при объявлении должно быть сразу присвоено значение. А тут нет. Создается с пом дефолтного конструктора.
Нет. Предполагается, что должно быть проинициализировано до первой попытки получить значение, т.е. так:
wrapper<int, must_be_initialized> a;
a = 654;
int c;
c = a; // ОК
wrapper<int, must_be_initialized> a2;
c = a2; // logic error