次の方法で共有


コンパイラ エラー C3771

"identifier" : フレンド宣言が一番近い名前空間スコープに見つかりませんでした

指定したテンプレート identifier のクラス テンプレート宣言が、現在の名前空間内に見つかりません。

このエラーを解決するには

  • テンプレート識別子のクラス テンプレート宣言が現在の名前空間で定義されていること、またはテンプレート識別子が完全修飾名であることを確認します。

次のコード例では、名前空間 NAでクラス テンプレートと関数を宣言しますが、名前空間 NBでフレンド関数テンプレートを宣言しようとします。

// C3771.cpp
// compile with: /c

namespace NA {
template<class T> class A {
    void aFunction(T t) {};
    };
}
// using namespace NA;
namespace NB {
    class X {
        template<class T> friend void A<T>::aFunction(T); // C3771
// try the following line instead
//      template<class T> friend void NA::A<T>::aFunction(T);
// or try "using namespace NA;" instead.
    };
}

関連項目

テンプレート