次のコードがあります:私はg ++の使用無名名前空間
#include <iostream>
using namespace std;
namespace
{
int funkcja()
{
cout << "unnamed" << endl;
return 0;
}
}
int funkcja()
{
cout << "global" << endl;
return 0;
}
int main()
{
::funkcja(); //this works, it will call funkcja() from global scope
funkcja(); //this generates an error
return 0;
}
が。このような状況で名前のない名前空間から関数を呼び出す方法はありますか? :: functionを使ってグローバルスコープから関数を呼び出すことはできますが、名前のない名前空間から関数を呼び出す方法はありますか?コンパイラはエラーを生成します。
prog3.cpp: In function ‘int main()’:
prog3.cpp:43:17: error: call of overloaded ‘funkcja()’ is ambiguous
prog3.cpp:32:5: note: candidates are: int funkcja()
prog3.cpp:25:6: note: int<unnamed>::funkcja()