2

現在、次のようなクラスがあります。

#define SET_METHOD( t , n ) \
private:    t n;    \
public:     void set_##n(  t value ) {  n = value; }

    class SomeClass
    {

        private: 
                    SET_METHOD(std::map<int,SomeClass>,hf);
    };

しかし、私がこのようなことをすると:

SomeClass sc;
hc.AddItem(1,sc);

次のエラーが表示されます。ゲッターとセッターを設定するためのこれらのマクロもありますが、今回は何が問題なのかわかりません。次のエラーが表示されます

Error   3   error C2923: 'std::map' : 'SomeClass' is not a valid template type argument for parameter '_Ty' 
Error   4   error C2208: 'std::map<_Kty,_Ty>' : no members defined using this type  

この問題を解決する方法についての提案をいただければ幸いです

4

2 に答える 2

0

HistoricalFields タイプから SomeClass タイプへの変換はありますか? また、鶏/卵の問題につながるクラス自体の観点からクラスメンバーを定義しようとしています(外部クラス自体を含むコレクションであるメンバーを定義しようとしています)。

于 2013-06-12T11:31:20.310 に答える