Bla*_*iwi 1 c++ move-semantics
当人们通常讨论或使用移动语义时,通常是在移动两个相同类型的类的上下文中.
例如:
MyObject(MyObject &&obj) { // Implementation }
Run Code Online (Sandbox Code Playgroud)
但是,如果MyObject在很大程度上只是像矢量一样包装STL容器,那该怎么办呢?是否会采用移动构造函数来获取向量并将其视为滥用功能?
MyObject(vector<backingtype> &&v) : i_Backing(move(v)) {}
Run Code Online (Sandbox Code Playgroud)
我问这个是因为我正在制作一个UTF-8感知的json解析器,它大量使用复制,而移动容器则足够快.
auto arrayParseRes = jsonArrayParse(input); // Array parse res
auto jsonArray = JsonArray(arrayParseRes.Parse_Value()); // Currently copying json values
Run Code Online (Sandbox Code Playgroud)