Re[2]: Как шаблон сделать
От: Аноним  
Дата: 27.07.05 14:51
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Здравствуйте, Аноним, Вы писали:


А>>Есть нечто вроде


А>>struct S{

А>> int operator[]( int i ){ ... }
А>>};

А>>Хочу сделать, чтобы помимо этого была специализация для случая, когда в качестве i передаётся константа 0.


Н>Если i известно только в рантайме (что, скорее всего, так и есть), то подойдет только такая "специализация":


Н>
Н>int S::operator [] (int i)
Н>{
Н>  if(0 == i)
Н>    // ...
Н>  else
Н>    // ..
Н>}
Н>


Н>Если же во время компиляции, то так:


Н>
Н>template <int I>
Н>struct S
Н>{
Н>  // ...
Н>};

Н>template<>
Н>struct S<0>
Н>{
Н>  // ...
Н>};
Н>


Да, вот только шаблон для оператора хотелось бы. Причём, чтобы в зависимости от того переменная или 0 передаются в оператор, выбиралась соответствующая специализация.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.