![]() |
Boost.Range |
為了將這個庫移植到盡可能多的編譯器上,我們作出了巨大的努力。
為了全面支持內建數組,要求編譯器支持類模板偏特化。對於不符合標準的編譯器,也有機會用 type traits 庫來繞過。
還要注意,有些編譯器不能正確執行函數模板的排序。這種情況下,你必須依賴 range_result_iterator,並定義單個函數而不是分別針對 const 和
non-const 參數進行重載。所以如果你用的是舊的編譯器,就不能傳遞右值給函數了。
為了最大的可移植性,你應該遵從以下方針:
begin(), end() 和
iterator_range 區間構造函數和賦值操作符,
const_begin() 和 const_end()
只要你的代碼意圖是只讀的;這可以解決大多數的右值問題,
boost.
© Copyright Thorsten Ottosen 2008.
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)