在this answer問一個問題「正在做Z這種便攜式」的想法是「提高這樣做,這意味着它是非常便攜的」。「提升它」與「非常便攜,使用它」相當於什麼程度?
我可以隨時諮詢boost源以找到在C++中使用最便捷的方法嗎?我怎麼能判斷自己是否真的是一個超便攜代碼的集合呢?
在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