我有一个功能
void foo(int *bar) {}
如果我像这样调用foo,Visual Studio 2012现在将很乐意并且没有警告编译:
int main() { foo(false); return 0; }
但是,如果我将foo(false)更改为foo(true),则会出现错误:
1>main.cpp(132): error C2664: 'foo' : cannot convert parameter 1 from 'bool' to 'int *' 1> Conversion from integral type to pointer type requires reinterpret_cast,C-style cast or function-style cast
知道如何确保在传递false时我也会收到错误吗?我唯一的想法是添加第二个私有函数“void foo(bool bar)”.然后我确实得到了所谓的错误,声明foo(bool bar)是私有的.但这只适用于从类外部调用foo并且它使我的界面混乱的情况.