访问模板类的Object成员

aam*_*mer 0 c++ class object

考虑以下宏:

#define hash<k1,v1> abc
Run Code Online (Sandbox Code Playgroud)

现在,通过一些如何,我的情况abc跟我,现在我想将值分配到v1使用abc,我怎么能做到这一点.

我试过,abc->v1 = 10;
我也试过,abc.v1 = 10; 但他们都没有工作.请提供简单的解决方案.

请查看此更新的问题:
将宏视为:

#define mac<a,b> abc
Run Code Online (Sandbox Code Playgroud)

我有一个函数具有类型的返回abc类型. 现在
xyz = func()
,在xyz我的帮助下,我想访问a并为a分配一些值,比方说

a = 10;
Run Code Online (Sandbox Code Playgroud)

如何访问变量' a',并使用它为其赋值xyz.

Som*_*ude 5

您有向后预处理器宏定义.如果你想abc扩展到(替换为)hash<k1, v1>那么它应该定义相反的方式:

#define abc hash<k1, v1>
Run Code Online (Sandbox Code Playgroud)

然后你可以做例如

abc xyz;
Run Code Online (Sandbox Code Playgroud)

这将是相同的

hash<k1, v1> xyz;
Run Code Online (Sandbox Code Playgroud)

另请注意,这不是预处理器宏的很好用,我建议您使用类型别名:

using abc = hash<k1, v1>;
Run Code Online (Sandbox Code Playgroud)

然后abc是一个可以用作任何其他类型的实际类型名称.