Имя: Пароль:
IT
 
С++ Определение наследования при помощи препроцессора
0 Тролль главный
 
01.03.13
10:30
1. есть базовый класс
class Base
{
public:
 virtual void Foo();
};

2. есть класс-шаблон
template<class T>
class Derived: T
{
public:
 void Foo();
};

В большинстве случаев предполагается, что параметр T будет наследником от Base, а значит Derived<t>::Foo() будет виртуальным.
Но не всегда, в таком случае Derived<t>::Foo() будет не виртуальной, а попросту она и вообще в таком случае не нужна.
Как избавится от еее определения при помощи препроцессора?
1 fmrlex
 
01.03.13
10:32
ну покури директивы препроцессора  на свой компилятор.
2 Тролль главный
 
01.03.13
10:37
(1) не хотелось бы всюду писать директивы, слишком муторно
3 Александр_
Тверь
 
01.03.13
10:49
(2) да бросай ты программирование вообще. это слишком муторно.
4 Тролль главный
 
01.03.13
10:51
(3) да лучше 1С бросить
5 Тролль главный
 
01.03.13
10:51
я просто как-то читал книжку, вот вспомнить не могу, где чувак с шаблонами вытварял разные штуки, типа программирования на уровне метаданных, не ран-тайм
6 orefkov
 
01.03.13
11:11
(5)
Александреску ищи.
А твой случай решается не препроцессором, а специализацией шаблона.
7 HeroShima
 
01.03.13
11:19
(0) При помощи шаблонов можно сделать многое, но не всё то, что делается с их помощью делается правильно.
8 Тролль главный
 
01.03.13
11:27
(6) спасибо, именно так, я в (5) написал
9 HeroShima
 
01.03.13
11:30
ещё можно всякие бусты и sh распотрошить.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан