You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
use universal reference to forward template argument
use std::forward to forward template argument
autofunction(std::vector<big_type>& list, big_type case1, const big_type& case2, auto&& case3)
{
list.push_back(std::move(case1)) // one copy/only move, but call function(list, std::move(val), ..., ...)
list.push_back(case2) // always one copy
list.push_back(std::forward<decltype(case3)>(case3)) // same case1 but have other features
}
autofunction(big_type case1, const big_type& case2, auto&& case3)
{
case1.readonly_func() // (( always one copy
case2.readonly_func() // )) no copy
case3.readonly_func() // )) no copy
}
The text was updated successfully, but these errors were encountered:
-
Type& val
-
Type* val
std::move
for forwardstd::string
(and other big [not fundamental] types)constructor(std::string string) : field(std::move(string))
const &
for [big type] argumentuniversal reference
to forward template argumentstd::forward
to forward template argumentThe text was updated successfully, but these errors were encountered: