• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[/
2    Copyright (c) 2010-2010 Joachim Faulhaber
3
4    Distributed under the Boost Software License, Version 1.0.
5    (See accompanying file LICENSE_1_0.txt or copy at
6    http://www.boost.org/LICENSE_1_0.txt)
7]
8
9[section Customization]
10
11[section Intervals]
12
13The *icl* provides the possibility of customizing user defined interval class templates
14and class types with static interval borders to be used with interval containers.
15
16There is a template __itv_tr__, that has to be instatiated for the user defined
17interval type, in order to provide associated types and basic functions.
18Bound types of the interval are assigned by specializing the template
19`interval_bound_type`.
20
21[table
22[[Customize]        [Name]             [Description]]
23[[associated types] [`interval_type`]  [interval type of the partial specialisation for the user defined type] ]
24[[]                 [`domain_type`]    [the domain or element type of the interval]                            ]
25[[]                 [`domain_compare`] [the ordering on the elements]                                          ]
26[[basic functions]  [`construct(const domain_type&, const domain_type&)`] [construct an interval]              ]
27[[]                 [`lower(const interval_type&)`]                       [select the interval's lower bound]  ]
28[[]                 [`upper(const interval_type&)`]                       [select the interval's upper bound]  ]
29[[interval bounds]  [`interval_bound_type<interval_type>{...}`] [specialize meta function `interval_bound_type`
30                                                                 to assign one of the 4 bound types to the user defined interval. ]  ]
31]
32
33How to do the customization in detail is shown in example
34[link boost_icl.examples.custom_interval custom interval].
35
36[endsect][/ Intervals]
37
38[endsect][/ Customization]
39
40
41