-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or requestperformanceThis can be done fasterThis can be done faster
Description
- use
const &
for [big type] argument - use
universal reference
to forward template argument - use
std::forward
to forward template argument
auto function(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
}
auto function(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
}
konard
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestperformanceThis can be done fasterThis can be done faster