Re[2]: Побороть копипаст
От: purser Россия  
Дата: 15.08.10 11:38
Оценка:
Спасибо. А можно ли исходя из нижеописанного заиметь таким же образом определение:

const char* names= {"Weapons", "Planes", "Resources", NULL};



Здравствуйте, lxa, Вы писали:

lxa>Я боюсь посоветовать такое:


lxa>
lxa>#define GOODS_LIST \
lxa>    ITEM_DEFN(Weapons) \
lxa>    ITEM_DEFN(Planes) \
lxa>    ITEM_DEFN(Resources)

lxa>class MainWindow {
lxa>public:
lxa>#define ITEM_DEFN(item) item,
lxa>    enum {
lxa>        GOODS_LIST
lxa>        Last  
lxa>    };
lxa>#undef ITEM_DEFN
lxa>};

lxa>#define ITEM_DEFN(item) void on_##item##_Selected();
lxa>GOODS_LIST
lxa>#undef ITEM_DEFN

lxa>#define ITEM_DEFN(item) void on_##item##_ToolBar_Click();
lxa>GOODS_LIST
lxa>#undef ITEM_DEFN
lxa>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.