我正在将我的字段类读取函数转换为一个模板函数。int, unsigned int, long,
我有和的字段类unsigned long
。这些都使用相同的方法从 an 中提取值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
(Boolean) 类型。Boolean: 有许多文本表示形式
0, 1, T, F, TRUE, FALSE
,以及所有不区分大小写的组合
以下是问题:
bool
C++ 标准说什么是使用流提取运算符提取 a 的有效数据?- 既然布尔值可以用文本来表示,那么这涉及到
locale
s吗? - 这个平台依赖吗?
我想通过不编写自己的bool
输入处理程序来简化我的代码。
我正在使用 MS Visual Studio 2008(版本 9)、C++ 以及 Windows XP 和 Vista。