還有就是以下代碼:未命名的名稱空間
#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()