Как можно избежать дублирования спецификации шаблона класса для каждой функции члена?C++

Программы на C++. Форум разработчиков
Anonymous
Как можно избежать дублирования спецификации шаблона класса для каждой функции члена?

Сообщение Anonymous »

Если у меня есть спецификация класса шаблона, как так, < /p>

template
class MyClass {
public:
void fun1();
// ...
void funN();
};

template
void MyClass::fun1() {
// definition
}

// ...

template
void MyClass::funN() {
// definition
}
< /code>

Если я изменю шаблон класса на что -то еще, скажем, я добавляю дополнительный параметр: < /p>

template
class MyClass {
// ...
};
< /code>

Тогда я должен изменить определение каждой функции (fun1, ..., funn), чтобы согласиться с спецификацией шаблона класса: < /p>

template
void MyClass::fun1() { //... }
< /code>

Есть ли какие -либо стратегии для этого? Могу ли я использовать макросы, например, < /p>

#define DFLT_TEMPLATE template
#define DFLT_CLASS class

DFLT_TEMPLATE
void DFLT_CLASS::fun1() { // ... }
< /code>

или это считается плохой практикой? < /p>

Подробнее здесь: https://stackoverflow.com/questions/419 ... mber-funct

Вернуться в «C++»