我有一个功能

AddSprintf(char* , ... )


如果有人在没有两个参数的情况下调用它,我想产生编译时错误。
目前,如果有人打电话

AddSprintf("hello")


有用。但我想禁用这样的呼叫。
有什么办法可以使用g ++强制传递参数?

最佳答案

重载AddSprintf:

void AddSprintf(const char* , ... ) {}
void AddSprintf(const char*);


然后,在编译AddSprintf("hello")时会收到奇怪的错误消息

但是请记住,在C ++ 11中,应使用可变参数模板,因为它们是类型安全的。

10-08 01:40