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