C ++用不同的char_traits交换std :: basic_string

时间:2019-01-05 02:17:40

标签: c++ string move swap

搜索了此内容,但最好的结果只是复制了字符串。

给出以下简单代码段:

struct custom_string_traits: std::char_traits<char> {
    static bool eq(char c, char d) { ... }
    static bool lt(char c, char d) { ... }
    ...
};
typedef std::basic_string<char,custom_string_traits> my_string;

我应该如何执行诸如

的操作
std::string foo = "baz";
my_string bar = "qux";
x::swap(foo, bar);
/*  OR  */
foo = std::move(bar);

我想在当前程序之外进行优化:

std::string foo = "baz";
my_string bar = "qux";
my_string next(foo.c_str(), foo.size());
foo.assign(bar.c_str(), bar.size());

看着C++ std::basic_string/char_traits specialization;不知道如何解释。

0 个答案:

没有答案