|
|
1
2
我对这个问题最初的回答很有启发,但现在有了一些改进。
这不需要“假定”第二个参数是const char*。 |
|
|
2
3
打电话的人要当心。如果您的函数被记录为采用printf样式的格式字符串,那么调用者有责任转义任何百分号。尝试处理无效的格式字符串并不是您的工作。
我认为你最好还是和C++的人相处。在Java方法中,通常检查有效参数并在传递无效值时抛出异常。在C++中,你只需让打电话的人在脚上开枪。最好让他们写下来
|
|
|
3
2
在C++ 11中,可以使用具有单个特例情况的显式专门化的可变模板:
然后:
|
|
|
4
1
好吧,我想我想出了这个问题的解决办法。 事实是你 不能 仅根据椭圆是否有参数进行重载。也就是说,不能有只有椭圆存在时才会变化的签名的函数。
然而,它
是
可以做一些像我问的如果我放弃
是不含糊的,但现在您必须假设第一个参数是
不幸的是,这似乎是一个可能的解决方案的范围,它允许您将va_参数传递给子函数,在我的示例中是
接受我自己的答案可能是不好的形式,即使是回答所提问题的答案。 |
|
AstralHex · 矩阵乘法代码工作不正常 10 月前 |
|
|
Giogre · 为包含许多数值字段的简单“struct”重载比较运算符 11 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 11 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 11 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 11 月前 |