D 中的模板和共享库
我刚刚意识到一些事情:
D 中的几乎所有内容都正在变得模板化。对于单个可执行文件来说这太棒了,但是它如何与共享库一起工作呢?如果在编译之前没有生成代码,那么 D 就无法创建使用模板的共享库,不是吗? (例如,火卫一必须是静态的——没有其他办法,对吧?)
I just realized something:
Nearly everything in D is becoming templated. That' awesome for a single executable, but how does that work with shared libraries? If no code is generated until it's compiled, then D can't make shared libraries that use templates, can it? (e.g. Phobos has to be static -- there's no other way, right?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嗯,这与 C++ 代码是同样的问题。
只能预编译非模板部分。其他一切都必须提供完整的源代码。
Phobos 是共享库还是静态库在这里没有太大区别。由于 dmd 的共享库问题,它仍然是静态的。
Well, it's the same issue like with C++ code.
Only the non-templated parts can be precompiled. Everything else must be provided with full source code.
Phobos being a shared or static library doesn't make much difference here. It's still static because of dmd's issues with shared libraries.