forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Разрешение неоднозначности (http://forum.boolean.name/showthread.php?t=19568)

Лit}{Ъ 09.12.2014 09:22

Разрешение неоднозначности
 
Доброго времени суток =). Вопрос скорее из любопытства, в данном случае проблема не критична. Дописываю функционал в чужой проект. Вижуалка ругается на неоднозначность определений. Например, пытаюсь определить enum с константами направлений (left, right, ...), при использовании ругается и не компилируется. Какими средствами разрешается неоднозначность? Как сказать, что "мне пофиг на всё что определено раньше (в туче навешанных инклюдов) хочу новое и своё" ?

MiXaeL 09.12.2014 11:17

Ответ: Разрешение неоднозначности
 
Никак.
И нефиг определять енумы в глобальном неймспейсе. Сделай как-нибудь так:
http://code.re/6Wg или в класс запихни.

Если есть c++11, то enum class в помощь.

HolyDel 09.12.2014 20:36

Ответ: Разрешение неоднозначности
 
#undef left
#undef right

MiXaeL 10.12.2014 17:37

Ответ: Разрешение неоднозначности
 
Холи что-то напутал. #undef просто удаляет определение, ранее созданное с помощью #define. Но как вариант да, может поизвращаться и использовать макросы для констант (я бы не рекомендовал).


Часовой пояс GMT +4, время: 15:11.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot