Вызов инициализирующего кода вне конструктора
От: glap  
Дата: 02.10.13 21:06
Оценка: -1
САБЖ. Нужно для привязывания переменных и геттеров/сеттеров к их строковому эквиваленту времени исполнения.

Пример:

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 не доступен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.