c++ - unordered_map(哈希表)的编译时创建也在编译时由类扩展

标签 c++ hashtable unordered-map compile-time

你好,我有以下情况。

我使用的是 c++14,我有几个类,它们的对象是通过 JSON 对象序列化的。为了确定 JSON 文件表示的对象的类,JSON 有一个 className 字段,它映射到类名的字符串,例如:

{
    ...,
    className: "class_one",
    ...,
}

我不想将每个字符串与每个可用类进行比较,而是使用哈希表 std::unordered_map。问题是我需要手动创建一个哈希表,该哈希表将字符串的所有类映射到每个类的正确初始化函数(所有类都继承自此处的同一个父类(super class))。相反,我想在编译时创建此表,并根据从我前面提到的父类(super class)继承的每个新类添加新条目。这可能吗?

最佳答案

听起来可行。查看CompileTimeArmor::StaticHashMap .

关于c++ - unordered_map(哈希表)的编译时创建也在编译时由类扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44049873/

相关文章:

.net - 对集合使用get_Keys()方法是否正确

c++ - 从具有 3 个元素的无序映射中删除值

c++ - 用于检查变量是否等于可变参数之一的可变参数宏

c++ - 在列表迭代期间删除元素 - 安全

java - 哪个更快,String 或 Integer 作为 Java 中的 hashkey?

c++ - 使用 unordered_map 分配器的非默认构造函数

当使用 vector 作为键时,C++ unordered_map 失败

c++ - SDL 2.0 编译,但无法运行

c++ - 在已打开的文件上删除ItemAtPath

Perl:从文件生成哈希数组