gpt4 book ai didi

c++ - 'std::map': 'SomeClass' 不是参数 '_Ty' 的有效模板类型参数

转载 作者:搜寻专家 更新时间:2023-10-31 01:09:23 26 4
gpt4 key购买 nike

我目前有一个如下所示的类。

#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);

我收到以下错误。我也有这些用于设置 getter 和 setter 的宏,但这次我不知道问题出在哪里。我收到以下错误

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

任何有关如何解决此问题的建议将不胜感激

最佳答案

我相信,在定义std::map<int,SomeClass>混淆了 C++ 预处理器。

删除宏并手动定义您的 setter/getter。

或者创建一个 typedef :

typedef std::map<int,SomeClass> MyMap;

并使用:

IMPLEMENT_SET_GET_METHOD(MyMap,hf);

关于c++ - 'std::map': 'SomeClass' 不是参数 '_Ty' 的有效模板类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17064110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com