C ++ Разрешение конфликтов с устаревшими безымянными пространствами имен - PullRequest
0 голосов
/ 21 сентября 2018

У меня большой массив устаревшего кода, который объявляет ряд важных типов.Например:

typedef uint32 EventId;

В настоящее время я интегрирую отличную новую версию стороннего кода (Scaleform), который имеет пространства имен, но имеет противоречивые определения:

namespace Scaleform { namespace GFx {
class EventId ...
}}

Существует код, где встречаются оба определения, и я, конечно, получаю ошибки:

ошибка: ссылка на 'EventId' является неоднозначной

примечание: кандидат, найденный поиском по имени,'EventId'

примечание: кандидат, найденный при поиске по имени, является 'Scaleform :: GFx :: EventId'

(OSX Clang, BTW)

НасколькоЯ могу сказать, что я в некотором роде SOL, так как C ++ запрещает подобные коллизии, и я не могу (например) обернуть устаревшие ссылки чем-то вроде:

using namespace;

Для принудительного применения безымянного пространства имен.

Мой единственный выход - переименовать один из типов, чтобы не было конфликтов, верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...