次のようなコードを記述するときに、 C++ がbool
定義済みの forおよび STL コンテナーへの暗黙的な変換を行わないのはなぜですか。std::string
if (!x.empty()) { ... }
もっと短くする代わりに
if (x) { ... }
いつx
のタイプですかstd::string
、たとえばstd::vector
?
また、(C++03 では) STL の例のようなstd::string
暗黙的な変換を行わないという事実にも困惑しています。const char*
std::string s("filename");
std::ofstream(s.c_str();