首先,没有可移植的方法来计算
具体来说,我有一个可变参数函数:
(我无法更改签名)我希望检测到
在Visual C++的非优化调试版本中是否有一种方法可以实现这一点?
va_list
的长度。也许在Visual C ++的调试(未优化)配置中有一种方法可以做到这一点?具体来说,我有一个可变参数函数:
void MyVariadic( const char* format, ... )
{
}
(我无法更改签名)我希望检测到
format
包含百分号字符且参数列表为空的情况(这可能意味着有人直接将任何字符串放在format
的位置上,而不是使用%s
),一旦我检测到这种情况,我可以使用assert()
或其他方法。在Visual C++的非优化调试版本中是否有一种方法可以实现这一点?
void MyVariadic(const char* plain)
更匹配。 - MSaltersMyVariadic("%s", plain)
并忽略那些技巧。 - MSalterstemplate <typename ... Args> void MyVariadic(const char* format, Args&&...args)
。 - Jarod42