C++的热重新编译

War*_*ine 9 c++ compiler-construction jit

我最近惊讶地看到Java代码被自动重新编译并注入正在运行的程序中.由于现代C++编译器(例如基于LLVM)开始调查JIT编译,我想知道是否有关于此主题的任何工作.

更新:通过"热重新编译",我的意思是编辑代码,重新编译可执行文件的特定部分并运行它而无需重新启动程序.常见的用例是具有无限循环的游戏引擎,您可以在渲染步骤中编辑某些代码,并查看下一帧的更改.

C++热重编译的研究状态是什么?有没有工作实施?

Che*_*Alf 10

这是可能的,通过"热重新编译"你的意思是像"编辑并继续"在Visual C++.

也许该链接构成了您问题的答案.

但是如果你要更清楚地定义你所询问的术语"热重新编译"会更容易(因为我写这个并没有很好地定义).

补充说:C++的"编辑并继续"显然是在1990年代用Visual C++ 6.0引入的.所以现在有些Java实现可以做到这一点,这有点令人惊讶.<g>然而,/Zi正如我记得的那样,启用编辑和继续的开关也会改变行为__LINE__,例如原始的ScopeGuard实现不起作用(然后必须使用Microsoft特定的__COUNTER__).

干杯&hth.,