Re[2]: Дайте интересную задачу на С++))
От: MaxLamer  
Дата: 25.04.05 20:04
Оценка:
Здравствуйте, 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.