我有一个命名空间,其中有很多我使用的符号,但我想覆盖其中一个:
external_library.h
namespace LottaStuff
{
class LotsOfClasses {};
class OneMoreClass {};
};
my_file.h
using namespace LottaStuff;
namespace MyCustomizations
{
class OneMoreClass {};
};
using MyCustomizations::OneMoreClass;
my_file.cpp
int main()
{
OneMoreClass foo; // error: reference to 'OneMoreClass' is ambiguous
return 0;
}
我该如何解决“ambiguous”错误,而不是用数千个“using xxx;”语句来替换“using namespace LottaStuff”?
编辑:还有,假设我无法编辑my_file.cpp,只能编辑my_file.h。因此,像下面建议的那样在所有地方将OneMoreClass替换为MyCustomizations :: OneMoreClass是不可能的。