Clang: una función amiga definida dentro de una clase

Tengo una clase que tiene una función amiga declarada y definida dentro de la clase y estoy llamando a esta función desde otra función dentro de la clase. El compilador de Clang (3.3) se queja por un identificador no declarado para la función de amigo. He compilado este código con MSVC y gcc y funciona en ambos compiladores, pero ahora con el puerto Clang me da este problema. Aquí hay un ejemplo de caso simplificado del problema:

class foo
{
  friend void bar() {}
  void asd() {bar();}
};

En Clang obtengo:error : use of undeclared identifier 'bar'. Si declaro / defino pla () fuera de la clase, funciona bien, pero tengo algunas macros que me obligan a definir la función dentro de la clase. ¿Es este un problema conocido en Clang o es Clang de alguna manera más pedante sobre la búsqueda de nombres en C ++ mientras sigue conformando el estándar de C ++? ¿Hay alguna solución conocida para ello al definir / declarar la función dentro de la clase?

Respuestas a la pregunta(2)

Su respuesta a la pregunta