【发布时间】:2020-09-14 18:28:26
【问题描述】:
考虑:
template <typename... Args>
ResourceHolder& operator+=(const ResourceInserter<Key, Args...>& inserter) {
if constexpr (sizeof...(Args) == 0) {
insert(std::move(inserter.key),
std::move(inserter.fileName));
} else {
insert(std::move(inserter.key),
std::move(inserter.fileName),
std::move(std::get<Args...>(inserter.tuple)));
}
return *this;
}
你认为这是移动语义的正确用法吗?
ResourceInserter 的 inserter 实例作为 const 引用传递。
【问题讨论】:
-
移动 const 对象一般是简单的复制。
标签: c++ c++11 move-semantics stdtuple