gpt4 book ai didi

c++ - 如何初始化一个 vector

转载 作者:行者123 更新时间:2023-12-05 08:47:00 27 4
gpt4 key购买 nike

我能做到:

std::vector<int> vec = { 1, 2, 3, 4, 5 };

但是我不能这样做:

std::vector<const type_info&> ClassBlackList = { typeid(Class1), typeid(Class2) };

编译器说指向引用的指针是非法的或

std::vector<const type_info> ClassBlackList = { typeid(Class1), typeid(Class2) };

编译器说错误 C2338 C++ 标准禁止 const 元素的容器,因为分配器格式错误。

std::vector<type_info> ClassBlackList = { typeid(Class1), typeid(Class2) };

编译器说:错误 C2280“type_info::type_info(const type_info &)”:试图引用已删除的函数

我也无法执行 push_back。拥有 type_info vector 或列表的解决方案是什么?

最佳答案

你可以使用指针

std::vector<const std::type_info*> v = { &typeid(Class1), &typeid(Class2) };

这是有效的,因为 typeid 返回对具有静态存储持续时间的对象的引用。

关于c++ - 如何初始化一个 vector <typeinfo>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68666574/

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