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 ++? Есть ли какой-нибудь известный обходной путь для этого при определении / объявлении функции в классе?

Ответы на вопрос(2)

Ваш ответ на вопрос