2010-02-26 50 views

回答

3

有些情況下,Boost庫,因爲它們包裹非常不可移植代碼恰恰存在。最明顯的例子是文件系統和線程的東西。

這是一個很大的使用Boost.Config宏的信號標誌。不依賴於Boost.Config(或其他非標準#ifdefs)的Boost代碼將具有高度的可移植性。

3

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

4

提升是prety以及針對各種操作系統的測試

退房this page

+0

這很好,謝謝你的鏈接。儘管如此,我應該提到的只有桌面/服務器平臺在那裏進行了測試/列出。我在* Windows Mobile *中使用了'boost :: shared_ptr',它運行得非常完美。由於它全部寫在頭文件中,所以我甚至沒有編譯boost。因此,覆蓋大範圍的測試應該會更好。 – legends2k 2010-02-26 14:11:25

相關問題