私はmove
セマンティクスの初心者です。このコードは次のとおりです。
template <typename... Args>
void foo(const Args & ... args){
map<tuple<Args...>, int> cache;
auto result = cache.emplace(move(make_tuple(args ...)),1);
//...
}
以下よりも効率的:
template <typename... Args>
void foo(const Args & ... args){
map<tuple<Args...>, int> cache;
tuple<Args...> t(args...);
auto result = cache.insert(make_pair(t,1));
//...
}
特にargs
大きなオブジェクトが含まれている場合は?
同じ質問ですが、 (またはstd::vector
は必要ありません)make_pair
make_tuple