Как определить более чем член пространства имен без имени снаружи?

Когда дело доходит до использования namespaces это действительно хорошая вещь, чтобы избежать столкновения имен. Но вот что важно для меня: использование anonymous namespaces,

Здесь, в моем примере, по какой-то причине я определил два безымянных пространства имен, и случайно два имеют функцию-член с одинаковой сигнатурой. И я хочу определить два вне пространств имен.

namespace {
void foo(); // to be defined outside in somewhere else
int x = 0; // I want the above foo() to increment x
}

namespace {
void foo();  // to be defined outside in somewhere else
// I want foo to do something else
}

// Here is my guess how to define a function outside Anonymous NS.
void ::foo() {
cout << "::foo()" << endl;
}

// void foo(){
//   cout << "foo()" << endl;
//}

int main(){

foo();
::foo();

cout << endl;
cin.get();
return 0;
}
  • Как избежать конфликтов имен при наличии нескольких пространств без имен?

Спасибо.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]