コンパイラ エラー C2701

'function' : 関数 template をローカル クラスの friend にすることはできません

ローカル クラスでは、template 関数を friend 関数として持つことはできません。

次の例では C2701 が生成されます。

// C2701.cpp
// compile with: /c
template<typename T>   // OK
void f1(const T &);

void MyFunction() {
   class MyClass {
      template<typename T> friend void f2(const T &);   // C2701
   };
}