有没有办法编写通用算法来解析用户定义模式的字符串,并使用用户提供的参数列表? 示例代码:
template <typename CharT, typename ...Args>
bool parse_string_to_args(std::basic_string<CharT> string,
const CharT* pattern, Args&&... args)
{
// for char: I'd use sscanf
auto ret = sscanf(string.c_str(), pattern, &args...);
if (ret == std::char_traits<char>::eof())
return false;
return true;
// for wchar: swscanf ...
}
示例代码当然很糟糕。我想要一个基于模板的替代来自C ++标准库的sscanf,如果有的话......
如果1.几乎不可能,有没有国际方法来处理任何字符(我知道Unicode)? C ++ 11 utf-8
或utf-16
能保证什么吗? wchar_t
似乎并不总是解析符号,所以我不想使用它。
注意:如果有跨平台方法(基本上是标准库)会很棒。 Linux是最高优先级。