The instantiation of default arguments for friends defined in a templated entity is not covered by 13.7.1 [temp.decls.general] paragraph 3 or 13.9.2 [temp.inst] paragraph 2. Consider:
template <typename T> struct A { friend void foo(A &&, int = T::happy) { } }; int main(void) { foo(A<int>(), 0); }
There is implementation divergence in the treatment of this example.