定义一个函数来返回指定类型的 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>;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)