g++编译器和隐式转换
我正在使用 g++ 编译我的 C++ 程序,但我想停止 int 和 dooble 等类型之间的隐式转换,例如: 我有一个使用 double 作为参数的函数,但是当我向该函数的参数发送一个 int 时,编译会顺利通过,没有错误或警告。
这就是我的问题,如何停止隐式转换?
谢谢。
I'm using g++ for compiling my C++ program, but I want to stop the implicit conversion between type like int and dooble for example:
I have a function that use a double as parameter, but when I send in this function's parameter an int, the compilation pass without error or warning.
so that is my question, how to stop the implicit conversions??
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以试试这个:
You could try this:
您无法避免从较低类型到较高类型的隐式转换。但是你可以反之亦然
如果您的编译器支持 C++0x。
You cannot avoid implicit conversion from lower to higher type. However you can do vice-versa
if your compiler supports C++0x.
我认为马丁的答案是正确的选择。
它可以在链接时找到转换。
如果必须在编译时查找,可以添加
static_assert
或者与函数模板类似的一个:
希望这会有所帮助。
I think Martin's answer is the way to go.
It can find the conversion at link time.
If you have to find at compile time, you can add
static_assert
ora similar one to the function template:
Hope this helps.