我无法理解如何std::variant在 C++17 中使用。给定两个 struct AandB和 a std::vector<std::variant<A,B>> vs,我想:
n;fun()或add()。#include <iostream>
#include <variant>
#include <vector>
struct A {
int n;
void fun() { std::cout << "fun\n"; }
int add(int m) { return n+m; }
};
struct B {
int n;
void fun() { std::cout << "fun\n"; }
int add(int m) { return n+m; }
};
int main() {
std::vector<std::variant<A,B>> vs;
vs.push_back(A{10,11});
vs.push_back(B{20,22});
// How to refer to …Run Code Online (Sandbox Code Playgroud)