Пиша на каком-нибудь языке программирования или разметки, не оборачивай каждую конструкцию языка в более удобную лично тебе.
Rationale: Когда кто-то будет разбираться, что такое \Q{x}{y} в твоём TeX’овом документе, он скажет в твой адрес много разных слов.
#define DECLARE_DEFAULT_CONSTRUCTOR THIS(void)
#define DECLARE_CONSTRUCTOR THIS
#define DECLARE_DESTRUCTOR virtual ~THIS(void)
#define DECLARE_COPY_CONSTRUCTOR THIS(const THIS& that)
#define DEFAULT_CONSTRUCTOR THIS::THIS(void)
#define CONSTRUCTOR THIS::THIS
#define DESTRUCTOR THIS::~THIS(void)
#define COPY_CONSTRUCTOR(THIS) THIS::THIS(const THIS& that)
#define METHOD THIS::
#define BEGIN { \
char _this_method[] = __FUNC__; \
clog << setw(prefix++) << "" << ">" << _this_method << endl;
#define END \
clog << setw(--prefix) << "" << "<" << _this_method << endl; \
}
#define THIS MyClass
class MyClass
{
public:
DECLARE_CONSTRUCTOR(int anInt);
DECLARE_DESTRUCTOR;
DECLARE_COPY_CONSTRUCTOR;
int getInt(void);
void setInt(int anInt);
private:
int itsInt;
};
CONSTRUCTOR(int anInt): itsInt(anInt)
BEGIN
END;
DESTRUCTOR
BEGIN
END;
COPY_CONSTRUCTOR: itsInt(that.itsInt)
BEGIN
END;
void METHOD setInt(int anInt)
BEGIN
itsInt = anInt;
END;
int METHOD getInt(void)
BEGIN
return itsInt;
END;
Это — C++. Я даже думаю, что после маленькой доработки напильником это скомпилируется. Но — этот стиль программирования, скорее всего, будет чужд большинству C++-программистов. IDE же, скажем, вообще тихо забьёт на все попытки быстро поперемещаться по методам такому класса.