整数到模板类型集合(C++)
Integer to template type collection in C++
C++有什么方法可以创建将整数与模板type
匹配的运行时可修改集合?
首先我关于:
std::map<uint32_t, std::type_index> type;
但std::type_index
的用处很小。我需要能够按该类型进行转换并将其用作std::is_convertible
的参数
所以 api 应该能够像这样:
my_collection.add<1234, std::string>();
my_collection.get<1234>()::type // type is std::string
或者实际上我可以在运行时使用的任何其他足够接近的东西:)
No.
如果您支持的类型列表可以有限且集中枚举,则可以使用std::variant
或boost::variant
或自己的滚动。
如果可以有限且集中地枚举对所支持类型的操作列表,则可以使用std::any
或boost::any
以及类型擦除技术来解决您的问题。 这是一个过于通用的系统,用于键入擦除几乎任何单次调度操作。
可以使用std::any
或boots::any
来获得非集中但局部有限枚举的类型列表,但只有每个枚举位置已知的确切类型在该位置发挥作用。
您可以执行上述操作的组合。
如果做不到这一点,您将进入动态C++库的运行时编译世界,并将结果和/或原始C++与源代码一起传递。 即时编译。
所有这些都将取决于你提出的确切的实际问题是什么,你提出了一个"解决方案";可能会有一个相关的问题,你的答案是"是",而这个相关的问题可能是你实际需要解决的。
但是,您提出的问题的答案只是"否"。
相关文章:
- 处理多个异常集合的C++方法
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 如何将ampl中的集合表示为c++中的向量
- 检查值是否在集合p1和p2中,但不在p3中
- 带过滤器的现代迭代c++集合
- 如何将结构插入到集合中并打印集合的成员
- 集合上的输出迭代器:assign和increment迭代器
- 如何将函数集合传递给客户端类,以便将它们当作客户端类本身的成员使用
- 实现一个在集合上迭代的模板函数
- 尝试使用集合函数时出现分段错误
- 互斥指针的集合
- c++找不到具有相同哈希的无序集合元素
- python集合的C++等价物是什么.计数器
- 如何在C++中递归地按相反顺序打印集合
- Python 集合.计数器,如何避免重复查找
- 如何写向量的无序向量集,即unordered_set<向量<向量<int>>集合?
- 从具有自定义排序的向量创建集合
- 显示字符串的集合和子集
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 有没有办法在 c++ 中按更大的 int 和更小的对对 int 和对的集合进行排序?