c++ - 定义一个函数以返回指定类型的 std::variant c++
问题描述
我对使用 c++17 规则几乎是新手。我的问题很简单;如何以我定义它们的相同顺序访问 std::variant 类型?我知道下面的代码不起作用!
#include <variant>
#include <iostream>
using myVariant = std::variant<double, int, std::string>;
template<typename T>
T typeReturn(int i);
int main(void)
{
myVariant b = 1.2;
double c = typeReturn(1)(b);
std::cout << c << std::endl;
return 0;
}
template<typename T>
T typeReturn(int i)
{
if (i == 0) return std::get<double>;
else if (i == 1) return std::get<int>;
else if (i == 2) return std::get<std::string>;
else return std::get<int>;
}
解决方案
推荐阅读
- javascript - JavaScript 只调用标头
- ibm-cloud - 如何将 IBM Watson Assistant 聊天机器人嵌入另一个 HTML 页面
- apache-spark - Spark SQL 中的 Sort by 与数据集 API 的排序与 Spark SQL 中的 Order by 有什么区别?
- word2vec - word2vec 词汇表中缺少单词
- xamarin - 使用 IdentityServer4 和 Xamarin Android 使用资源所有者密码进行脱机访问和刷新令牌
- sql - 从日期 SQL 返回按年和月分组的所有行
- python - 在 Python-Django 项目中将 XML 值呈现为 HTML
- c - C、没有malloc的fork上泄漏
- node.js - 为什么 Angular 需要 Node Js?Angular Cli 的作用是什么?
- uwp - 从 UWP 应用程序 C# 项目调用 wrt/c++ Windows 运行时组件时出现 InvalidCastException