“提升它”与“非常便携,使用它”相当于什么程度?
问题描述:
在this answer问一个问题“正在做Z这种便携式”的想法是“提高这样做,这意味着它是非常便携的”。“提升它”与“非常便携,使用它”相当于什么程度?
我可以随时咨询boost源以找到在C++中使用最便捷的方法吗?我怎么能判断自己是否真的是一个超便携代码的集合呢?
答
有些情况下,Boost库,因为它们包裹非常不可移植代码恰恰存在。最明显的例子是文件系统和线程的东西。
这是一个很大的使用Boost.Config宏的信号标志。不依赖于Boost.Config(或其他非标准#ifdefs)的Boost代码将具有高度的可移植性。
答
Boost自带一些guidelines关于如何编程的可移植性;图书馆在接受之前进行了严格的同行评审 - 尽管如果没有合理的方法实施图书馆Raison d'être,图书馆带来突破性概念 - 例如boost :: mpl didn长时间在太阳编译器上效果不佳。
所以,是的,你可以查阅图书馆的资料来源 - 然而,期望一个主要的头痛,便携式编码需要间接水平的水平。
@Hassan:刚刚才知道 - 现在'mpl'正常工作,因为编译器没有完全遵循标准,或者代码没有严格遵守C++ 03?我很好奇的原因是,我无法理解为什么当代码遵循标准和编译器的同样疑问时,代码无法正常运行。 – legends2k 2010-02-26 14:14:38
我不知道确切的细节,虽然它在最近的编译器上工作。 – 2010-02-26 14:16:48
嗯。这些准则不要求代码适用于所有符合要求的编译器,也不要求代码适用于任何不符合要求的编译器。当人们说,“这个代码是否可移植?”时,通常这并不意味着什么?尽管我看到了Boost的方法的实用主义 - 如果它承诺可移植性,并且接下来研究如何实际移植它,则接受实验库的实现。实际上,稳定的Boost代码比这些指南指定的要好得多。 – 2010-02-26 18:22:11