Стоит ли так делать
От: Seriously Serious  
Дата: 22.06.05 21:33
Оценка:
У меня есть некоторое количество характеристик типов. Чтобы сделать работу с ними поинтереснее(?), я подумал, что можно делать так:

struct TraitA {};
struct TraitB {};

template <class type, class trait>
struct Trait;

                           //это вместо
template <class type>      //template <class type>
struct Trait<type, TraitA> //struct TraitA
{                          //{
    typedef ... result;    //    typedef ... result;
};                         //};


Стоит ли так делать?
Re: Стоит ли так делать
От: WoldemaR Россия  
Дата: 23.06.05 07:02
Оценка: :)
Здравствуйте, Seriously Serious, Вы писали:

SS>Стоит ли так делать?


Даже незнаю. Может Вы раскажите нам поподробнее, чтобы нам тоже стало интереснее.
Re[2]: Стоит ли так делать
От: Seriously Serious  
Дата: 23.06.05 08:11
Оценка:
Эээ...

Ну во-первых можно делать характеристики характеристик:
template<>
struct Trait<TraitA, TraitB> {...};


Во-вторых можно устанавливать значения по умолчанию для некоторой группы характеристик. Можно сделать обработку автоматом const и volatile случаи, если они совпадают с не const и volatile:
template <class type, class trait>
struct Trait<const type, trait>
{
    typedef typename Trait<type, trait>::result result;
};

(Можно сделать характеристику характеристики, определяющую, верно ли это для данной характеристики)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.