gpt4 book ai didi

c++ - C++ 中的 std::variant cout

转载 作者:行者123 更新时间:2023-12-01 15:04:54 29 4
gpt4 key购买 nike

我对 CPP 比较陌生,最近偶然发现了 std::variant对于 C++17。

但是,我无法使用 <<此类数据的运算符。

考虑

#include <iostream>
#include <variant>
#include <string>
using namespace std;
int main() {

variant<int, string> a = "Hello";
cout<<a;
}

我无法打印输出。有没有什么简短的方法可以做到这一点?非常感谢你提前。

最佳答案

您可以使用 std::visit如果您不想使用 std::get .

#include <iostream>
#include <variant>

struct make_string_functor {
std::string operator()(const std::string &x) const { return x; }
std::string operator()(int x) const { return std::to_string(x); }
};

int main() {
const std::variant<int, std::string> v = "hello";

// option 1
std::cout << std::visit(make_string_functor(), v) << "\n";

// option 2
std::visit([](const auto &x) { std::cout << x; }, v);
std::cout << "\n";
}

关于c++ - C++ 中的 std::variant cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62355613/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com