我有一个类,它在类中声明和定义了一个友元函数,我从类中的另一个函数调用这个函数.Clang编译器(3.3)抱怨友元函数的未声明标识符.我用MSVC和gcc编译了这个代码,它适用于两个编译器,但现在使用Clang端口我遇到了这个问题.以下是该问题的简化示例:
class foo
{
friend void bar() {}
void asd() {bar();}
};
Run Code Online (Sandbox Code Playgroud)
在Clang我得到:error : use of undeclared identifier 'bar'.如果我在类之外声明/定义pla(),它工作正常,但我有一些宏迫使我在类中定义函数.这是Clang中的一些已知问题,还是Clang对C++名称查找更加迂腐,同时仍符合C++标准?在定义/声明类中的函数时,是否有一些已知的解决方法?