САБЖ. Нужно для привязывания переменных и геттеров/сеттеров к их строковому эквиваленту времени исполнения.
Пример:
class A
{
int member0;
int member1;
int member2;
SOMETHING_COOL(member0)
SOMETHING_COOL(member1)
SOMETHING_COOL(member2)
};
Решение пока через класс с конструктором по умолчанию.
#define SOMETHING_COOL(...) \
struct UNIQ_NAME \
{ \
UNIQ_NAME() \
{ \
тут делаем что нужно; \
} \
} uniq_member_name;
Всё бы ничего, но на каждый пустой тип выделяется 1 байт. Штука активно используется для связывания статики и динамики в большом проекте с глубокой иерархией классов и на эти однобайтовые красивости куча памяти уходит. Нахожусь в поисках решения чтобы сильно не пришлось портить устоявшийся интерфейс.
П.С.
C++0x11 не доступен.