Возможно сделать для VAL == false и VAL == true свои typedef'ы? Хотелось бы, чтобы это выглядело примерно так (разумеется, что написанное не компилируется):
Здравствуйте, kpcb, Вы писали:
K>Можно сделать так:
Не совсем то, что я хотел, но лучше, чем без ничего: A<int, true> и A<float, false>
Эту конструкцию писать не так уж и трудно, но смысл интуитивно непонятен. Спасибо.
Здравствуйте, Nuzhny.
kpcb предложил хороший вариант, и я бы им воспользовался. Могу еще предложить вариант с открытым наследованием. Правда в данном случае мы получим не alias, а новый шаблонный тип, который будет также являться нужной Вам специализацией.
template<typename T>
class At: public A<T, true>
{
};
template<typename T>
class Af: public A<T, false>
{
};
At<int> a1;
Af<float> a2;
S>kpcb предложил хороший вариант, и я бы им воспользовался. Могу еще предложить вариант с открытым наследованием. Правда в данном случае мы получим не alias, а новый шаблонный тип, который будет также являться нужной Вам специализацией.
Вариант хороший — кроме необходимости явного дуюлирования конструкторов.
Разумеется, для traits это ни к чему, но шаблоны бывают всякие...
Re[2]: typedef для частичной специализации шаблона