制作一个函数,打印在 C++ 中作为参数给出的任何变量

Making a function that prints any variable given as parameter in c++

我喜欢通过打印进行调试,因为您可以打印很多东西并研究您的代码。
但我不喜欢一直 cout<<ing,因为它有点难写,而且你必须在 cout 中添加新行,这意味着如果你想打印一些东西,你必须
cout<< something<<"\n";
我在Javascript写了一个函数,很容易实现:

function p(s){
    console.log(s)
}

这使得打印东西变得非常容易。示例:

let name = "Alex";
let surname = "De Souza";
p("Name is:");
p(name+surname);
p(len(name));

但是说到c++,是不是一定要这么写:

void p(int i){
    cout<<i<<"\n";
}
void p(string s){
    cout << s<<"\n";
}
void p(bool b){
    cout << b << "\n";
}
.
.
.

或者有没有更简单的方法可以让我更简单地实现它?
我试过auto,但是在函数声明中是被禁止的。

谢谢。

您可以创建模板函数。

这看起来像:

template<typename T>
void p(const T& t) {
    std::cout << t;
}

这是做什么的,当你点击编译时,它会自动使用这个模板创建函数,T 替换为你在程序中使用的类型。所以如果你要写:

p("Hello World!\n");
p(10 + 20);

它将创建两个函数,其中一个 T 被替换为 const char[] (C 字符串)另一个 Tint 替换并使用它们.