Ton*_*roy 16
Loki是一个很好的图书馆,涉及几个功能区域(模板元编程支持一些特定的应用程序:智能指针,单例,功能对象,范围保护等),而boost是许多库的集合,通常详尽地涵盖每个功能区域并且更加高度重视便携性(第一).
当用同一块石头杀死10只中的9只鸟时,许多人只是从提升开始并填补第三方图书馆的空白.如果重叠,很难与提升竞争.因为你不会与大部分的提升重叠,人们无论如何都会下载/安装提升以获得其他功能,所以除非你指出一个提升弱的区域 - 并且差异对项目来说很重要,他们会"解决" "也是为了提升.
此外,Alexandrescu多次尝试将Loki纳入提升,一些关键的提升作者只是不合作.我个人的观点是,他们希望更完整但更不易用户的MPL拥有更多的"市场份额":作为图书馆的作者和硬拷贝书籍是唯一体面的文档(与大多数其他提升形成鲜明对比)有优秀在线文档的图书馆),他们做得很好.
如果有人对此分析感到冒犯并且不同意,我会全力以赴.
极其参数化代码的另一个实际问题是,在不同开发人员/团队独立工作的大型项目中,他们通常最终会使用相同模板的微妙不同的实例来进行任意调整.这使得在这些子系统之间传递值变得更加困难:接收器可能需要:
这一切都是可能的,但需要一个优秀的程序员来导航地形.
我实际上更喜欢Loki的做事方式,而且我自己也为Loki贡献了一个Decorator模式,现在它位于跟踪器中,因为据我所知,该项目已不再维护.
我使用boost shared_pointer只是因为它很快就会成为标准,我可能不喜欢这样一个事实:我无法自定义它以完全按照我希望它的行为行事,但我必须忍受它.
标准库的使用很重要,因为它可以保持代码可由其他程序员维护.如果它是开源的,你想要实验继续使用Loki.没有人阻止你.
实际上Windows Vista使用了Loki的一些功能.
我猜他们没有使用智能指针和访问者的冗余实现.