bool image_manager::contains_image(const std::string& filename)
{
return this->map_.count(filename);
}
现在我得到的警告是:
warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning)
但是,由于std::map
s count() 方法的返回类型是:
如果找到具有等效于 x 的键的元素,则为 1,否则为零。
因此它可以像布尔值一样使用。那么为什么我会收到这个警告呢?在 C++ 中,整数基本上可以用于布尔检查,对吗?因此0 == false
和1 == true
。那么为什么编译器会给我一个警告呢?我也尝试过使用static_cast
这样的:
return static_cast<bool>(this->map_.count(filename));
但我仍然收到警告。