フィールド クラスの読み取り関数を 1 つのテンプレート関数に変換しています。と のフィールド クラスがint, unsigned int, long,ありunsigned longます。これらはすべて、から値を抽出するために同じ方法を使用しますistringstream(型のみが変わります)。
template <typename Value_Type>
Value_Type Extract_Value(const std::string& input_string)
{
std::istringstream m_string_stream;
m_string_stream.str(input_string);
m_string_stream.clear();
m_string_stream >> value;
return;
}
トリッキーな部分はbool(ブール) 型にあります。
0, 1, T, F, TRUE, FALSEBoolean:には多くのテキスト表現があり、大文字と小文字を区別しないすべての組み合わせがあります
質問は次のとおりです。
- C++ 標準では
bool、ストリーム抽出演算子を使用して a を抽出するための有効なデータとは何ですか? - Boolean はテキストで表すことができるので、これには
locales が含まれますか? - これはプラットフォームに依存しますか?
入力用の独自のハンドラーを作成しないことで、コードを簡素化したいと考えていboolます。
MS Visual Studio 2008 (バージョン 9)、C++、および Windows XP と Vista を使用しています。