我正在创建自己的编译器,使用 LLVM 作为后端,并用我的语言为最终用户提供一个列表,该列表的操作类似于 Java 中的 ArrayList。我可以使用 llvm 的 ArrayType,但在创建时我必须指定大小,所以当我想扩展它时会出现问题(我可以重新分配它)。此外,我需要手动实现所有操作(插入、删除等)。
我认为也许我可以使用 std::vector,但还有另一个问题 - std::vector 是一个模板类,所以我必须在将其编译为 llvm 字节码之前指定类型。是否有一些解决方案可以动态指定该类型?
在 llvm 中实现这些东西的最佳方法是什么?
我将不胜感激任何解决方案或提示。