Для этого конкретного проекта я не могу использовать функции С++ 11 (например, decltype
), потому что компилятор еще не поддерживает их. Мне нужно иметь возможность предоставить текущий класс в качестве параметра шаблона, желательно в макросе без аргумента (см. ниже), не наряжая объявление class
или скрывая фигурные скобки и т. д.
class Foo: private Bar<Foo> {
MAGIC //expands to using Bar<Foo>::Baz; and some others
public:
void otherFunction();
//... the rest of the class
};
В идеале я хотел бы, чтобы это работало очень похоже на макрос Q_OBJECT
Qt, но без введения еще одного шага предварительной компиляции и связанных с ним сгенерированных классов. typeid
может быть полезен во время выполнения, но моя цель — реализовать все это при сборке.
Как написать макрос MAGIC
, чтобы не нужно было каждый раз повторять имя класса?
self
в C++? - person Lightness Races in Orbit   schedule 04.03.2016self
выглядит очень похоже, но, как вы заметили, ни одно из предложенных решений не работает на С++ 03. Конечно, измените заголовок, если это сделает его более понятным. - person multipleinterfaces   schedule 04.03.2016