Clang: функция друга, определенная в классе
У меня есть класс, у которого есть функция друга, объявленная и определенная внутри класса, и я вызываю эту функцию из другой функции в классе. Компилятор Clang (3.3) жалуется на необъявленный идентификатор для функции Friend. Я скомпилировал этот код с помощью MSVC и gcc, и он работает на обоих компиляторах, но теперь с портом Clang я получаю эту проблему. Вот упрощенный пример случая проблемы:
class foo
{
friend void bar() {}
void asd() {bar();}
};
В Clang я получаю:error : use of undeclared identifier 'bar'
, Если я объявляю / определяю pla () вне класса, он работает нормально, но у меня есть несколько макросов, которые вынуждают меня определять функцию внутри класса. Является ли это какой-то известной проблемой в Clang или Clang более педантичен в отношении поиска имени в C ++, в то же время соответствуя стандарту C ++? Есть ли какой-нибудь известный обходной путь для этого при определении / объявлении функции в классе?