我有两个函数:
void DoSomething( const tchar* apsValue )
void DoSomething( size_t aiValue )
现在我想将'0'作为size_t类型传递:
DoSomething(0);
编译器报错:“重载函数调用模糊”。为了解决这个问题,我可以使用static_cast,例如:
DoSomething(static_cast<size_t>(0));
或者更简单:
DoSomething(size_t(0));
它们中的一个比另一个更好吗?还有其他解决方法吗?
static_cast
优于 C 风格的转换。否则...当您想要MyClass
的临时实例时,您会写static_cast< MyClass >( 42 )
还是MyClass( 42 )
? - James Kanze...在适用的情况下
- iammilindDoSomething(0ul)
或DoSomething(0ull)
。有点混乱,是吧? - Janusz Lenar