А именно:
[](auto const& foo) {
??? bar; // should be same base type as foo, minus const&
}
Пока что я использую:
typename std::remove_const<typename std::remove_reference<decltype(foo)>::type>::type combination
Но я действительно надеюсь, что есть более легкая альтернатива!
std::decay<decltype(whatever)>::type
, или же decay_t
если твой std
библиотека была обновлена с ним.
Он эмулирует различные виды затухания аргументов функций. Он обрабатывает, если ваш аргумент был ссылкой на функцию. При ссылке на массив он также создает указатель, который менее идеален.
Если вы хотите справиться с этим по-другому, вам придется свернуть свои собственные.