3 <meta http-equiv=
"Content-Type" content=
"text/html; charset=US-ASCII">
4 <title>Interval Construction
</title>
5 <link rel=
"stylesheet" href=
"../../../../../../doc/src/boostbook.css" type=
"text/css">
6 <meta name=
"generator" content=
"DocBook XSL Stylesheets V1.74.0">
7 <link rel=
"home" href=
"../../index.html" title=
"Chapter 1. Boost.Icl">
8 <link rel=
"up" href=
"../function_reference.html" title=
"Function Reference">
9 <link rel=
"prev" href=
"streaming__conversion.html" title=
"Streaming, conversion">
10 <link rel=
"next" href=
"additional_interval_orderings.html" title=
"Additional Interval Orderings">
12 <body bgcolor=
"white" text=
"black" link=
"#0000FF" vlink=
"#840084" alink=
"#0000FF">
13 <table cellpadding=
"2" width=
"100%"><tr>
14 <td valign=
"top"><img alt=
"Boost C++ Libraries" width=
"277" height=
"86" src=
"../../../../../../boost.png"></td>
15 <td align=
"center"><a href=
"../../../../../../index.html">Home
</a></td>
16 <td align=
"center"><a href=
"../../../../../libraries.htm">Libraries
</a></td>
17 <td align=
"center"><a href=
"http://www.boost.org/users/people.html">People
</a></td>
18 <td align=
"center"><a href=
"http://www.boost.org/users/faq.html">FAQ
</a></td>
19 <td align=
"center"><a href=
"../../../../../../more/index.htm">More
</a></td>
22 <div class=
"spirit-nav">
23 <a accesskey=
"p" href=
"streaming__conversion.html"><img src=
"../../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../function_reference.html"><img src=
"../../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../../index.html"><img src=
"../../../../../../doc/src/images/home.png" alt=
"Home"></a><a accesskey=
"n" href=
"additional_interval_orderings.html"><img src=
"../../../../../../doc/src/images/next.png" alt=
"Next"></a>
25 <div class=
"section boost_icl_function_reference_interval_construction" lang=
"en">
26 <div class=
"titlepage"><div><div><h3 class=
"title">
27 <a name=
"boost_icl.function_reference.interval_construction"></a><a class=
"link" href=
"interval_construction.html" title=
"Interval Construction">Interval
29 </h3></div></div></div>
30 <div class=
"informaltable"><table class=
"table">
48 discrete
<br> _interval
53 continuous
<br> _interval
58 right_open
<br> _interval
63 left_open
<br> _interval
153 <span class=
"emphasis"><em><span class=
"bold"><strong>Construct
</strong></span></em></span>
184 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">singleton
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
189 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
194 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
199 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
204 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
209 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
214 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
221 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">construct
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span>
222 <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
227 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
232 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
237 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
238 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
243 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
244 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
249 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
254 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
263 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"identifier">T
</span> <span class=
"identifier">construct
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span>
264 <span class=
"identifier">interval_bounds
</span> <span class=
"special">)
</span>
271 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
276 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
299 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">hull
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span>
300 <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
305 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
310 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
315 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
316 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
321 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
322 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
327 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
332 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
339 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">span
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span>
340 <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
345 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
350 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
355 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
356 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
361 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
362 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
367 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
372 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
379 <code class=
"computeroutput"><span class=
"keyword">static
</span> <span class=
"identifier">T
</span>
380 <span class=
"identifier">right_open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span>
381 <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
386 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
391 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
414 <code class=
"computeroutput"><span class=
"keyword">static
</span> <span class=
"identifier">T
</span>
415 <span class=
"identifier">left_open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span>
416 <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
421 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
426 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
449 <code class=
"computeroutput"><span class=
"keyword">static
</span> <span class=
"identifier">T
</span>
450 <span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span>
451 <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
456 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
461 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
484 <code class=
"computeroutput"><span class=
"keyword">static
</span> <span class=
"identifier">T
</span>
485 <span class=
"identifier">open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span>
486 <span class=
"identifier">P
</span><span class=
"special">&)
</span></code>
491 <a class=
"link" href=
"../interface/function_synopsis.html#discrete_types"><span class=
"bold"><strong>d
</strong></span></a>
496 <a class=
"link" href=
"../interface/function_synopsis.html#continuous_types"><span class=
"bold"><strong>c
</strong></span></a>
519 The table above shows the availability of functions, that allow the construction
520 of intervals. All interval constructin functins are of
<span class=
"emphasis"><em><span class=
"bold"><strong>constant time and space complexity
</strong></span></em></span>.
522 <div class=
"informaltable"><table class=
"table">
530 <span class=
"emphasis"><em><span class=
"bold"><strong>Construct
</strong></span></em></span>
543 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">singleton
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span>
544 <span class=
"identifier">value
</span><span class=
"special">)
</span></code>
549 Constructs an interval that contains exactly one element
<code class=
"computeroutput"><span class=
"identifier">value
</span></code>. For all interval types of
550 the icl sigletons can be constructed for
<span class=
"emphasis"><em>discrete
</em></span>
551 domain types. For continuous domain types, only
<code class=
"computeroutput"><a class=
"link" href=
"../../boost/icl/continuous_interval.html" title=
"Class template continuous_interval">continuous_interval
</a></code>
552 is capable to construct a singleton.
559 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">construct
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span>
560 <span class=
"identifier">lower
</span><span class=
"special">,
</span>
561 <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span> <span class=
"identifier">upper
</span><span class=
"special">)
</span></code>
566 Contructs an interval with lower bound
<code class=
"computeroutput"><span class=
"identifier">lower
</span></code>
567 and upper bound
<code class=
"computeroutput"><span class=
"identifier">upper
</span></code>
576 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"identifier">T
</span> <span class=
"identifier">construct
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span> <span class=
"identifier">lower
</span><span class=
"special">,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span> <span class=
"identifier">upper
</span><span class=
"special">,
</span>
577 <span class=
"identifier">interval_bounds
</span> <span class=
"identifier">bounds
</span>
578 <span class=
"special">=
</span> <span class=
"identifier">interval_bounds
</span><span class=
"special">::
</span><span class=
"identifier">right_open
</span><span class=
"special">())
</span>
585 For dynamically bounded intervals this function constructs an interval
586 with interval bounds specified by the third parameter.
593 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">hull
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span>
594 <span class=
"identifier">x1
</span><span class=
"special">,
</span>
595 <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span> <span class=
"identifier">x2
</span><span class=
"special">)
</span></code>
600 <code class=
"computeroutput"><span class=
"identifier">hull
</span><span class=
"special">(
</span><span class=
"identifier">x1
</span><span class=
"special">,
</span><span class=
"identifier">x2
</span><span class=
"special">)
</span></code>
601 constructs the smallest interval that contains both
<code class=
"computeroutput"><span class=
"identifier">x1
</span></code> and
<code class=
"computeroutput"><span class=
"identifier">x2
</span></code>.
602 <code class=
"computeroutput"><span class=
"identifier">x2
</span></code> may be smaller
603 than
<code class=
"computeroutput"><span class=
"identifier">x1
</span></code>.
610 <code class=
"computeroutput"><span class=
"identifier">T
</span> <span class=
"identifier">span
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span>
611 <span class=
"identifier">x1
</span><span class=
"special">,
</span>
612 <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&</span> <span class=
"identifier">x2
</span><span class=
"special">)
</span></code>
617 <code class=
"computeroutput"><span class=
"identifier">span
</span><span class=
"special">(
</span><span class=
"identifier">x1
</span><span class=
"special">,
</span><span class=
"identifier">x2
</span><span class=
"special">)
</span></code>
618 constructs the interval
<code class=
"computeroutput"><span class=
"identifier">construct
</span><span class=
"special">(
</span><span class=
"identifier">min
</span><span class=
"special">(
</span><span class=
"identifier">x1
</span><span class=
"special">,
</span><span class=
"identifier">x2
</span><span class=
"special">),
</span> <span class=
"identifier">max
</span><span class=
"special">(
</span><span class=
"identifier">x1
</span><span class=
"special">,
</span><span class=
"identifier">x2
</span><span class=
"special">))
</span></code>. Note the differences between
619 <code class=
"computeroutput"><span class=
"identifier">span
</span></code>,
<code class=
"computeroutput"><span class=
"identifier">hull
</span></code> and
<code class=
"computeroutput"><span class=
"identifier">construct
</span></code>:
622 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"identifier">span
</span><span class=
"special"><</span><span class=
"identifier">right_open_interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">></span> <span class=
"special">>(
</span><span class=
"number">2</span><span class=
"special">,
</span><span class=
"number">1</span><span class=
"special">)
</span> <span class=
"special">==
</span> <span class=
"special">[
</span><span class=
"number">1</span><span class=
"special">,
</span><span class=
"number">2</span><span class=
"special">)
</span> <span class=
"comment">// does NOT contain
2
623 </span><span class=
"identifier">hull
</span><span class=
"special"><</span><span class=
"identifier">right_open_interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">></span> <span class=
"special">>(
</span><span class=
"number">2</span><span class=
"special">,
</span><span class=
"number">1</span><span class=
"special">)
</span> <span class=
"special">==
</span> <span class=
"special">[
</span><span class=
"number">1</span><span class=
"special">,
</span><span class=
"number">3</span><span class=
"special">)
</span> <span class=
"comment">// contains
2
624 </span><span class=
"identifier">construct
</span><span class=
"special"><</span><span class=
"identifier">right_open_interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">></span> <span class=
"special">>(
</span><span class=
"number">2</span><span class=
"special">,
</span><span class=
"number">1</span><span class=
"special">)
</span> <span class=
"special">==
</span> <span class=
"special">[)
</span> <span class=
"comment">// is empty
635 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">right_open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
636 <span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">left_open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
637 <span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
638 <span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
645 For dynamically bounded intervals there are for static functions
646 to construct intervals with the four interval bound types:
648 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"identifier">discrete_interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">></span> <span class=
"identifier">itv1
</span> <span class=
"special">=
</span> <span class=
"identifier">discrete_interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">>::
</span><span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"number">0</span><span class=
"special">,
</span><span class=
"number">42</span><span class=
"special">);
</span>
649 <span class=
"identifier">continuous_interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">></span> <span class=
"identifier">itv2
</span> <span class=
"special">=
</span> <span class=
"identifier">continuous_interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">right_open
</span><span class=
"special">(
</span><span class=
"number">0.0</span><span class=
"special">,
</span> <span class=
"number">1.0</span><span class=
"special">);
</span>
658 <span class=
"emphasis"><em><span class=
"bold"><strong>Using the interval default
</strong></span></em></span>
669 <code class=
"computeroutput"><span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"identifier">P
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span></code>
674 There is a library default, for all interval containers of the
<span class=
"bold"><strong>icl
</strong></span>. The intension of the library default
675 is to minimize the need for parameter specification, when working
676 with
<span class=
"bold"><strong>icl
</strong></span> class templates. We can
677 get the library default interval type as
<code class=
"computeroutput"><span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"identifier">P
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span></code>.
678 The library default uses
<span class=
"emphasis"><em><span class=
"bold"><strong>dynamically
679 bounded intervals
</strong></span></em></span>. You can switch to
<span class=
"emphasis"><em><span class=
"bold"><strong>statically bounded intervals
</strong></span></em></span> by
680 <code class=
"computeroutput"><span class=
"preprocessor">#define
</span> <span class=
"identifier">BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
</span></code>
681 prior to icl includes.
690 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">right_open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
691 <span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">left_open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
692 <span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
693 <span class=
"keyword">static
</span> <span class=
"identifier">T
</span> <span class=
"identifier">open
</span><span class=
"special">(
</span><span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&,
</span> <span class=
"keyword">const
</span> <span class=
"identifier">P
</span><span class=
"special">&)
</span>
700 For template struct
<code class=
"computeroutput"><span class=
"identifier">interval
</span></code>
701 that always uses the library default the static functions for the
702 four interval bound types are also available.
704 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span> <span class=
"identifier">itv1
</span> <span class=
"special">=
</span> <span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">>::
</span><span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"number">0</span><span class=
"special">,
</span><span class=
"number">42</span><span class=
"special">);
</span>
705 <span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span> <span class=
"identifier">itv2
</span> <span class=
"special">=
</span> <span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">right_open
</span><span class=
"special">(
</span><span class=
"number">0.0</span><span class=
"special">,
</span> <span class=
"number">1.0</span><span class=
"special">);
</span>
708 This works with the statically bounded intervals as well, with the
709 restriction that for continuous domain types the matching function
712 <pre xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class=
"table-programlisting"><span class=
"preprocessor">#define
</span> <span class=
"identifier">BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
</span>
713 <span class=
"special">.
</span> <span class=
"special">.
</span> <span class=
"special">.
</span>
714 <span class=
"comment">// library default is the statically bounded right_open_interval
715 </span><span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span> <span class=
"identifier">itv1
</span> <span class=
"special">=
</span> <span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">int
</span><span class=
"special">>::
</span><span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"number">0</span><span class=
"special">,
</span><span class=
"number">42</span><span class=
"special">);
</span> <span class=
"comment">//==[
0,
43) //ok, bounds are shifted
716 </span><span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span> <span class=
"identifier">itv2
</span> <span class=
"special">=
</span> <span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">right_open
</span><span class=
"special">(
</span><span class=
"number">0.0</span><span class=
"special">,
</span> <span class=
"number">1.0</span><span class=
"special">);
</span> <span class=
"comment">//ok. right_open matches
717 </span><span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">type
</span> <span class=
"identifier">itv3
</span> <span class=
"special">=
</span> <span class=
"identifier">interval
</span><span class=
"special"><</span><span class=
"keyword">double
</span><span class=
"special">>::
</span><span class=
"identifier">closed
</span><span class=
"special">(
</span><span class=
"number">0.0</span><span class=
"special">,
</span> <span class=
"number">1.0</span><span class=
"special">);
</span> <span class=
"comment">//will NOT compile
720 See also examples
<a class=
"link" href=
"../examples/dynamic_interval.html" title=
"Dynamic interval">Dynamic
721 intervals
</a> and
<a class=
"link" href=
"../examples/static_interval.html" title=
"Static interval">Static
729 <span class=
"emphasis"><em><span class=
"bold"><strong>See also . . .
</strong></span></em></span>
731 <div class=
"informaltable"><table class=
"table">
732 <colgroup><col></colgroup>
733 <thead><tr></tr></thead>
737 <a class=
"link" href=
"../examples/dynamic_interval.html" title=
"Dynamic interval"><span class=
"emphasis"><em><span class=
"bold"><strong>Example: Dynamically bounded intervals and the library
738 default
</strong></span></em></span></a>
743 <a class=
"link" href=
"../examples/static_interval.html" title=
"Static interval"><span class=
"emphasis"><em><span class=
"bold"><strong>Example: Statically bounded intervals, changing the library
744 default
</strong></span></em></span></a>
750 <span class=
"emphasis"><em><span class=
"bold"><strong>Back to section . . .
</strong></span></em></span>
752 <div class=
"informaltable"><table class=
"table">
753 <colgroup><col></colgroup>
754 <thead><tr></tr></thead>
758 <a class=
"link" href=
"../interface/function_synopsis.html#additional_interval_functions"><span class=
"emphasis"><em><span class=
"bold"><strong>Additional interval functions
</strong></span></em></span></a>
763 <a class=
"link" href=
"../interface/function_synopsis.html#function_synopsis_table"><span class=
"emphasis"><em><span class=
"bold"><strong>Function
764 Synopsis
</strong></span></em></span></a>
769 <a class=
"link" href=
"../interface.html" title=
"Interface"><span class=
"emphasis"><em><span class=
"bold"><strong>Interface
</strong></span></em></span></a>
775 <table xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width=
"100%"><tr>
776 <td align=
"left"></td>
777 <td align=
"right"><div class=
"copyright-footer">Copyright
© 2007 -
2010 Joachim Faulhaber
<br>Copyright
© 1999 -
2006 Cortex Software GmbH
<p>
778 Distributed under the Boost Software License, Version
1.0. (See accompanying
779 file LICENSE_1_0.txt or copy at
<a href=
"http://www.boost.org/LICENSE_1_0.txt" target=
"_top">http://www.boost.org/LICENSE_1_0.txt
</a>)
784 <div class=
"spirit-nav">
785 <a accesskey=
"p" href=
"streaming__conversion.html"><img src=
"../../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../function_reference.html"><img src=
"../../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../../index.html"><img src=
"../../../../../../doc/src/images/home.png" alt=
"Home"></a><a accesskey=
"n" href=
"additional_interval_orderings.html"><img src=
"../../../../../../doc/src/images/next.png" alt=
"Next"></a>