【发布时间】:2017-01-30 03:06:34
【问题描述】:
我正在尝试将打印参数的工作定义转换为正确的函数,但我不确定变量类型。
我的工作方法是:
#define WARN(x) std::cout << "WARNING! " << x << "!" << std::endl;
然后我可以传递一个类似于 using std::cout 的句子
WARN("This is a test warning." << " And this is some more stuff...");
但是,我觉得这应该更整齐地包装在一个函数中,而不是使用定义。
请您帮助我了解预处理器如何解释变量 x,以及如何将定义转换为函数。
附:我知道我可以使用可变参数函数,但我宁愿不必传递参数的数量,而是宁愿完全避免可变参数。
【问题讨论】:
-
不要将可变参数函数误认为可变参数模板,它知道传递了多少参数及其类型。
-
我没有意识到它们是两个不同的东西。我去看看模板,谢谢!
-
如果它只是一个参数,那么可变参数部分也会变得多余。一个普通的模板就足够了。
标签: c++ printing types macros c-preprocessor