C ++按任何模式将任何字符串类型拆分(解析)到用户指定的参数

时间:2017-01-19 18:42:53

标签: c++ c++11 templates unicode stl

  1. 有没有办法编写通用算法来解析用户定义模式的字符串,并使用用户提供的参数列表? 示例代码:

    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,如果有的话......

  2. 如果1.几乎不可能,有没有国际方法来处理任何字符(我知道Unicode)? C ++ 11 utf-8utf-16能保证什么吗? wchar_t似乎并不总是解析符号,所以我不想使用它。

  3. 注意:如果有跨平台方法(基本上是标准库)会很棒。 Linux是最高优先级。

0 个答案:

没有答案