1. ホーム
  2. c++

[解決済み] ERROR: "依存名が型でない". クラス内で typedef 型を戻り値として使用する場合、テンプレートで

2022-02-05 12:43:05

質問

template <class Item>
class bag
{
public:
    //TYPEDEF
    typedef size_t size_type;
    typedef Item value_type;
...
}

を使用すると

template<class Item>
bag<Item>::size_type bag<Item>::count(const Item& target) const

VC++は次のようなエラーを報告します。 Source.cpp(207): 警告 C4346: 'bag::size_type' : 依存名が型でない

どなたか原因を教えてください。ありがとうございます。

解決方法は?

それは

template<class Item>
typename bag<Item>::size_type bag<Item>::count(const Item& target) const