C ++创建一个存储不同类型名称的向量

she*_*yar 3 c++ types vector

我想创建一个存储数据类型名称的向量(int,char,bool等)

我正在寻找类似的东西:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(int argc,char** argv)
{
  vector<typenames> v = {int,float,double,bool};
}
Run Code Online (Sandbox Code Playgroud)

lub*_*bgr 5

如果您要存储的类型有限,则可以使用<variant>,例如

#include <variant>

using VarType = std::variant<int, float, double, bool>;
std::vector<VarType> v;

v.push_back(42);

assert(std::holds_alternative<int>(v.front()));
assert(std::get<int>(v.front()) == 42);

v[0] = true;

assert(std::holds_alternative<bool>(v.front()));
assert(std::get<bool>(v.front()));
Run Code Online (Sandbox Code Playgroud)

请注意,如果C ++ 17不可用,则可以使用Boost variant