【发布时间】:2015-04-27 05:01:26
【问题描述】:
我有一个功能
void print(stack<T>& One, stack<T>& Two, stack<T>& Three);
我想输出参数名称(即 cout
我该怎么做呢?
【问题讨论】:
-
如果您只想打印输出参数的名称,您提到的应该可以。您的问题是否比您发布的内容更多?
标签: c++ reflection parameter-passing
我有一个功能
void print(stack<T>& One, stack<T>& Two, stack<T>& Three);
我想输出参数名称(即 cout
我该怎么做呢?
【问题讨论】:
标签: c++ reflection parameter-passing
您不能,因为编译器甚至可能不会在生成的目标文件中保留参数名称。可以去掉符号,也可以完全优化参数。
【讨论】:
cout << ##One; //Outputs "One"
cout << ##Two; //Outputs "Two"
cout << ##Three; //Outputs "Three"
查看http://www.cplusplus.com/doc/tutorial/preprocessor/ 并搜索##。
宏## 将以下符号替换为文本。所以##One 在预处理步骤中变成了“One”。
【讨论】: