1
當人們通常討論或使用移動語義時,通常是在移動兩個相同類型的類的上下文中。這是濫用/誤用移動語義嗎?
如:
MyObject(MyObject &&obj) { // Implementation }
但是如果myObject的是隻包裹像載體STL容器的大部分。會做出一個移動構造函數,並將其移動到向量並將其視爲濫用功能?
MyObject(vector<backingtype> &&v) : i_Backing(move(v)) {}
我問這個,因爲我正在做一個UTF-8瞭解JSON解析器使用了大量的複製,而移動容器就足夠了,速度更快。
auto arrayParseRes = jsonArrayParse(input); // Array parse res
auto jsonArray = JsonArray(arrayParseRes.Parse_Value()); // Currently copying json values
感謝STL的例子。綽綽有餘的證明證明它對C++來說是慣用的。 – BlamKiwi