定义变量类型

Define variable type

本文关键字:类型 变量 定义      更新时间:2023-10-16

我正在尝试将参数打印为正确函数的工作定义转换,但我不确定变量类型。

我的工作方法是:

#define WARN(x)     std::cout << "WARNING! " << x << "!" << std::endl;

然后我可以传递一个类似于使用 std::cout 的句子

WARN("This is a test warning." << " And this is some more stuff...");

但是,我觉得这应该更整齐地包装到函数中,而不是使用定义。

请您帮助我了解预处理器如何解释变量 x,以及如何将定义转换为函数。

附言我知道我可以使用可变参数函数,但我宁愿不必传递参数的数量,无论如何都宁愿完全避免可变参数。

但我不确定变量类型。

这就是使用函数模板可以提供干净解决方案的地方。

template <typename T>
void WARN(T const& x)
{
  std::cout << "WARNING! " << x << "!" << std::endl;
}

是一个很好的替代品

#define WARN(x)     std::cout << "WARNING! " << x << "!" << std::endl;