У меня большой массив устаревшего кода, который объявляет ряд важных типов.Например:
typedef uint32 EventId;
В настоящее время я интегрирую отличную новую версию стороннего кода (Scaleform), который имеет пространства имен, но имеет противоречивые определения:
namespace Scaleform { namespace GFx {
class EventId ...
}}
Существует код, где встречаются оба определения, и я, конечно, получаю ошибки:
ошибка: ссылка на 'EventId' является неоднозначной
примечание: кандидат, найденный поиском по имени,'EventId'
примечание: кандидат, найденный при поиске по имени, является 'Scaleform :: GFx :: EventId'
(OSX Clang, BTW)
НасколькоЯ могу сказать, что я в некотором роде SOL, так как C ++ запрещает подобные коллизии, и я не могу (например) обернуть устаревшие ссылки чем-то вроде:
using namespace;
Для принудительного применения безымянного пространства имен.
Мой единственный выход - переименовать один из типов, чтобы не было конфликтов, верно?