相关疑难解决方法(0)

我应该在我的C++代码中使用printf吗?

我通常使用coutcerr写文本到控制台.然而,有时我发现使用旧的printf陈述更容易.我需要格式化输出时使用它.

我将使用它的一个例子是:

// Lets assume that I'm printing coordinates... 
printf("(%d,%d)\n", x, y);

// To do the same thing as above using cout....
cout << "(" << x << "," << y << ")" << endl;
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用格式化输出,cout但我已经知道如何使用printf.有什么理由我不应该使用这个printf陈述吗?

c++ formatting

67
推荐指数
10
解决办法
3万
查看次数

为什么规范禁止将类类型传递给变量参数C++函数?

通过非荚可变参数函数,如printf是未定义的行为(1,2),但我不理解为什么 C++标准设定这种方式.变量arg函数中是否存在任何固有的东西阻止它们接受类作为参数?

变量arg callee确实对它们的类​​型一无所知 - 但它也不知道它接受的内置类型或普通POD.

此外,这些必然是cdecl函数,因此调用者可以负责例如在传递时复制它们并在返回时销毁它们.

任何见解将不胜感激.


编辑:我仍然没有看到为什么建议的可变参数语义不起作用,但zneak的答案很好地说明了将编译器调整到它需要什么 - 所以我接受了它.最终,这可能是一些历史故障.

c++ variadic-functions language-lawyer

24
推荐指数
3
解决办法
918
查看次数