gpt4 book ai didi

c++ - 是否可以在 C++ 运行时动态创建函数?

转载 作者:IT老高 更新时间:2023-10-28 13:58:15 24 4
gpt4 key购买 nike

C++ 是一种静态的编译语言,模板在编译时被解析等等......

但是是否可以在运行时创建一个在源代码中没有描述并且在编译期间没有转换为机器语言的函数,以便用户可以向它抛出源代码中没有预料到的数据?

我知道这不可能以直接的方式发生,但肯定有可能,有很多编程语言没有被编译,而是动态地创建了用 C 或 C++ 实现的那种东西。

也许如果创建所有原始类型的工厂,以及将它们组织成更复杂的对象(例如用户类型和函数)的合适数据结构,这是可以实现的吗?

欢迎提供有关该主题的任何信息以及指向在线 Material 的指针。谢谢!

编辑:我知道这是可能的,这更像是我对实现细节感兴趣:)

最佳答案

是的,当然,没有其他答案中提到的任何工具,但只需使用 C++ 编译器

只需在您的 C++ 程序中执行这些步骤(在 linux 上,但在其他操作系统上必须类似)

  1. 使用 ofstream
  2. 将 C++ 程序写入文件(例如在/tmp/prog.cc 中)
  3. 通过system("c++/tmp/prog.cc -o/tmp/prog.so -shared -fPIC");
  4. 编译程序
  5. 动态加载程序,例如使用 dlopen()

关于c++ - 是否可以在 C++ 运行时动态创建函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11016078/

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