策略

區間模板interval 需要兩個參數,第一模板參數對應於選擇作為邊界的基類型,第二個模板參數定義捨入檢查 行為. 第二個參數並不是強制的並且可能需要一些定制.為了簡化操作,在interval/policies.hpp 中提供了一些輔助的模板.

namespace boost {
namespace numeric {
namespace interval_lib {

template<class Rounding, class Checking>
struct policies {
  typedef Rounding rounding;
  typedef Checking checking;
};

template<class OldInterval, class NewRounding>
struct change_rounding {
  typedef ... type;
};

template<class OldInterval, class NewChecking>
struct change_checking {
  typedef ... type;
};

template<class OldInterval>
struct unprotect {
  typedef ... type;
};

} // namespace interval_lib
} // namespace numeric
} // namespace boost

無論何時用戶需要為一個區間類定義一個策略結構,應當使用策略模板policies. change_roundingchange_checking c可以通過改變舊的區間類型中的一個策略來獲取一個新的區間的類型; 新的類型是可用的歸功於類型定義type. 最後,unprotect 看起來像是change_rounding通過直接改變一個區間的捨入模式為它的未受保護的版本 (一個更好的解釋在這裡).


Valid HTML 4.01 Transitional

Revised 2006-12-24

Copyright © 2002 Guillaume Melquiond, Sylvain Pion, Hervé Brönnimann, Polytechnic University

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)