Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 访问自动参数';lambda中的s型_C++_Templates_C++14_Auto_Decltype - Fatal编程技术网

C++ 访问自动参数';lambda中的s型

C++ 访问自动参数';lambda中的s型,c++,templates,c++14,auto,decltype,C++,Templates,C++14,Auto,Decltype,我将lambda函数用于样板代码: auto import = [&](auto & value){ // Do some stuff }; 由于value实际上是一个std::vector,我需要访问它的value\u类型静态成员来调用它的一个元素上的模板函数 我尝试使用decltype,但没有成功: auto import = [&](auto & value){ decltype(value)::value_type v; }; 有什么方法可

我将lambda函数用于样板代码:

auto import = [&](auto & value){
   // Do some stuff
};
由于
value
实际上是一个s
td::vector
,我需要访问它的
value\u类型
静态成员来调用它的一个元素上的模板函数

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

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

有什么方法可以这样做吗?

值的类型是左值引用,您无法从中获取成员类型,必须删除引用部分,例如

typename std::decay_t<decltype(value)>::value_type v;
typename std::decation\u t::value\u type v;
PS:您还需要为依赖类型名称预先添加
typename
。看


在lambda参数声明中使用“auto”仅适用于c++14
。。。请更新您的问题标签
typename
。@HolyBlackCat是的,因此我们需要将这两个答案结合起来以获得正确的解决方案。.是的,typename std::decation\t::value\u type工作得很好。谢谢