Re[8]: template static methods
От: Vain Россия google.ru
Дата: 16.10.09 13:24
Оценка: 1 (1) +2
Здравствуйте, anagaf, Вы писали:

H>>Код который я привел раньше
Автор: hramovnik
Дата: 16.10.09
не использует костыли и прекрасно работает.

H>>Может я чего то не понял?
A>Просто не хочется делать класс Tester шаблонным. Очень сложный шаблон может получиться, функций типа test несколько и у каждой по несколько параметров
Так и перегрузи их, а не объявляй шаблонными. А имплементацию сделай шаблоном:
//Tester.h
class A;
void foo(int);
void foo(long);
void foo(A);

//Tester.cpp
#include "Tester.h"

template<int N,class T>
void foo_impl(T);

template<class T>
void foo_impl<1>(T)
{
  //Общая имплементация #1
}

template<class T>
void foo_impl<2>(T)
{
  //Общая имплементация #2
}

void foo(int a)
{
  return foo_impl<1,int>(a); //Имплементация #1
}

void foo(long a)
{
  return foo_impl<1,long>(a); //Имплементация #1
}

void foo(A a)
{
  return foo_impl<2,A>(a); //Имплементация #2
}
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.