创建与推导参数类型相同的局部变量的最简单方法是什么?

时间:2014-06-07 03:13:53

标签: c++ c++11 lambda auto argument-deduction

即:

[](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

但我真的希望这是一个更容易的选择!

1 个答案:

答案 0 :(得分:10)

std::decay<decltype(whatever)>::typedecay_t如果您的std库已更新过。

它模拟各种函数论证衰变。它处理你的arg是否为函数引用。在引用到数组时,它也会产生一个指针,这不太理想。

如果你想以不同方式处理这些问题,你必须自己动手。