我正在使用lambda函数来编写模板代码。
auto import = [&](auto & value){
// Do some stuff
};
As value
其实是一个td::vector
,我需要访问它 value_type
静态成员来调用其中一个元素的模板函数。
我尝试使用 decltype
没有成功:
auto import = [&](auto & value){
decltype(value)::value_type v;
};
有什么方法可以做到这一点?
的类型,我需要访问它的value_type成员来调用 value
是一个l-value-reference,你不能从它那里得到成员类型,你必须去掉reference部分,如
typename std::decay_t<decltype(value)>::value_type v;
PS: 你还需要添加 typename
预先 @Vlad 已回答)为从属类型名称。参见 我为什么要把 "模板 "和 "类型名 "这两个关键字放在哪里?.