考虑以下宏:
#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.
您有向后预处理器宏定义.如果你想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是一个可以用作任何其他类型的实际类型名称.