Здравствуйте, Pavel Chikulaev, Вы писали:
PC>Задача:
PC>PC>template<int N>
PC>class B
PC>{
PC> enum { value = 0 };
PC>};
PC>template<>
PC>class B<2>
PC>{
PC> enum { value = 2 };
PC>};
PC>template<>
PC>class B<18923>
PC>{
PC> enum { value = 9240 };
PC>};
PC>assert(MaxValueOfAllSpecializations<B>::value == 9240);
PC>
PC>Написать класс MaxValueOfAllSpecializations<B>, реализовать не перебирая все
PC>значения инта, никакой информации за пределами классов B, единственно что
PC>можно — наличее какого-нибудь базового класса у каждой специализации B.
Я немного подумал, но писать не могу. Наверное нужен базовый класс, от которого все пораждаются, в котором есть общая переменная для всех типов классов (типа static). И при создании нового класса в эту статическую переменную записывается значение данного класса, если оно больше той константы.
Подход правильный? Вообще ответы есть?
PC>--
PC>Pavel Chikulaev