在 lambda 中访问自动参数的类型

Access auto parameter's type within lambda

我正在为样板代码使用 lambda 函数:

auto import = [&](auto & value){
   // Do some stuff
};

由于 value 实际上是一个 std::vector,我需要访问其 value_type 静态成员以在其元素之一上调用模板函数。

我尝试使用 decltype 但没有成功:

auto import = [&](auto & value){
   decltype(value)::value_type v;
};

有什么办法吗?

value的类型是左值引用,不能从中获取成员类型,必须去掉引用部分,例如

typename std::decay_t<decltype(value)>::value_type v;

PS:还需要提前加上typename(如@Vlad answered) for the dependent type name. See Where and why do I have to put the “template” and “typename” keywords?

LIVE