“提升它”与“非常便携,使用它”相当于什么程度?

“提升它”与“非常便携,使用它”相当于什么程度?

问题描述:

this answer问一个问题“正在做Z这种便携式”的想法是“提高这样做,这意味着它是非常便携的”。“提升它”与“非常便携,使用它”相当于什么程度?

我可以随时咨询boost源以找到在C++中使用最便捷的方法吗?我怎么能判断自己是否真的是一个超便携代码的集合呢?

有些情况下,Boost库,因为它们包裹非常不可移植代码恰恰存在。最明显的例子是文件系统和线程的东西。

这是一个很大的使用Boost.Config宏的信号标志。不依赖于Boost.Config(或其他非标准#ifdefs)的Boost代码将具有高度的可移植性。

Boost自带一些guidelines关于如何编程的可移植性;图书馆在接受之前进行了严格的同行评审 - 尽管如果没有合理的方法实施图书馆Raison d'être,图书馆带来突破性概念 - 例如boost :: mpl didn长时间在太阳编译器上效果不佳。

所以,是的,你可以查阅图书馆的资料来源 - 然而,期望一个主要的头痛,便携式编码需要间接水平的水平。

+0

@Hassan:刚刚才知道 - 现在'mpl'正常工作,因为编译器没有完全遵循标准,或者代码没有严格遵守C++ 03?我很好奇的原因是,我无法理解为什么当代码遵循标准和编译器的同样疑问时,代码无法正常运行。 – legends2k 2010-02-26 14:14:38

+0

我不知道确切的细节,虽然它在最近的编译器上工作。 – 2010-02-26 14:16:48

+0

嗯。这些准则不要求代码适用于所有符合要求的编译器,也不要求代码适用于任何不符合要求的编译器。当人们说,“这个代码是否可移植?”时,通常这并不意味着什么?尽管我看到了Boost的方法的实用主义 - 如果它承诺可移植性,并且接下来研究如何实际移植它,则接受实验库的实现。实际上,稳定的Boost代码比这些指南指定的要好得多。 – 2010-02-26 18:22:11

提升是prety以及针对各种操作系统的测试

退房this page

+0

这很好,谢谢你的链接。尽管如此,我应该提到的只有桌面/服务器平台在那里进行了测试/列出。我在* Windows Mobile *中使用了'boost :: shared_ptr',它运行得非常完美。由于它全部写在头文件中,所以我甚至没有编译boost。因此,覆盖大范围的测试应该会更好。 – legends2k 2010-02-26 14:11:25