如何在模板化函数中检索映射框::util::variant 值
How to retrieve mapbox::util::variant value in a templated function
使用mapbox::variant (https://github.com/mapbox/variant/blob/master/include/mapbox/variant.hpp),我可以执行以下操作:
using variant = mapbox::util::variant<Args...>;
variant<std::string> v;
// do something with v
...
// Get string from v:
std::string s = v.get<std::string>();
但是当我尝试通过模板函数实现这一点时,我得到了编译错误:
template <typename T>
T getValue()
{
variant<T> value{};
// Get value
...
return value.get<T>();
}
海湾合作委员会抱怨:
../utils.hpp:52:23:错误:">"之前的预期主表达式 令 牌 返回值.get(); ^ ../utils.hpp:52:25:错误:")"标记之前的预期主表达式 返回值.get();
模板函数有什么问题?
我想你想要:
return value.template get<T>();
这个答案给出了一个很好的/全面的描述,为什么...
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 如何在模板化函数中检索映射框::util::variant 值