пятница, 21 августа 2009 г.

Наследние С...

Сегодня столкнулся с интересной фичей:
class CClass
{
...
enum e_enum1 {none, standart, free};
enum e_enum2 {none, day, month, year, free};
...
};


На что получил от компилятор вопящий крик "error C2365: 'none' : redefinition; previous definition was 'enumerator'" тоже и для free

Решений нашел несколько:
1. объвлять каждый енум в свой области видимости
2. enum {none};
enum e_enum1 {none1 = none, standart, free};
enum e_enum2 {none2 = none, day, month, year, free};
3. плюнуть на это дело и юзать дефайны :)