1 /*-----------------------------------------------------------------------------+
2 Copyright (c) 2010-2010: Joachim Faulhaber
3 +------------------------------------------------------------------------------+
4    Distributed under the Boost Software License, Version 1.0.
5       (See accompanying file LICENCE.txt or copy at
6            http://www.boost.org/LICENSE_1_0.txt)
7 +-----------------------------------------------------------------------------*/
8 #ifndef BOOST_ICL_DYNAMIC_INTERVAL_TRAITS_HPP_JOFA_100926
9 #define BOOST_ICL_DYNAMIC_INTERVAL_TRAITS_HPP_JOFA_100926
10 
11 namespace boost{ namespace icl
12 {
13 
14 class interval_bounds;
15 template<class DomainT> class bounded_value;
16 
17 
18 //------------------------------------------------------------------------------
19 //- Adapter class
20 //------------------------------------------------------------------------------
21 template<class Type>
22 struct dynamic_interval_traits
23 {
24     typedef typename Type::domain_type    domain_type;
25     typedef typename Type::domain_compare domain_compare;
26 
27     static Type construct(const domain_type& lo, const domain_type& up, interval_bounds bounds);
28     static Type construct_bounded(const bounded_value<domain_type>& lo,
29                                   const bounded_value<domain_type>& up);
30 };
31 
32 
33 }} // namespace boost icl
34 
35 #endif
36 
37 
38