我正在将字段类读取函数转换为一个模板函数。我有外勤课程
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, FALSE
,
以及所有不区分大小写的组合
问题如下:
-
C++标准所说的是什么?
要提取的有效数据
布尔
,
使用流提取
操作员?
-
因为布尔值可以用
文本,这涉及到
locale
S?
-
这个平台依赖吗?
我想通过不为编写自己的处理程序来简化代码
布尔
输入。
我使用MS Visual Studio 2008(版本9)、C++和WindowsXP和Vista。