dim*_*mba 14 c++ boost type-conversion boost-optional
我怎么能阻止编译这段代码的最后一行?
#include <boost/optional.hpp>
int main()
{
typedef boost::optional<int> int_opt;
int_opt opt = 0;
bool x = opt; // <- I do not want this to compile
}
Run Code Online (Sandbox Code Playgroud)
最后一行不检查opt
包含的int值,而是编译为bool的类型转换,并且似乎不是用户的意图.
安全布尔成语似乎与此相关吗?
Dan*_*ger 18
重点boost::optional
是启用这样的代码:
void func(boost::optional<int> optionalArg)
{
if (optionalArg) {
doSomething(*optionalArg);
}
}
Run Code Online (Sandbox Code Playgroud)
因此隐式转换bool
是一个功能,不应该阻止编译.
归档时间: |
|
查看次数: |
11833 次 |
最近记录: |