]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
2 | "http://www.w3.org/TR/html4/loose.dtd"> | |
3 | ||
4 | <html> | |
5 | <head> | |
6 | <meta http-equiv="Content-Language" content="en-us"> | |
7 | <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> | |
8 | <link rel="stylesheet" type="text/css" href="../../../../boost.css"> | |
9 | ||
10 | <title>Policies</title> | |
11 | </head> | |
12 | ||
13 | <body lang="en"> | |
14 | <h1>Policies</h1> | |
15 | ||
16 | <p>The <code>interval</code> template requires two arguments. The first | |
17 | corresponds to the base type chosen for the bounds. And the second defines | |
18 | the <a href="rounding.htm">rounding</a> and <a href= | |
19 | "checking.htm">checking</a> behaviors of the newly constructed class. This | |
20 | second argument is not mandatory but may need some customizations. In order | |
21 | to ease the manipulations, some helper templates are provided in | |
22 | <code>interval/policies.hpp</code>.</p> | |
23 | <pre> | |
24 | namespace boost { | |
25 | namespace numeric { | |
26 | namespace interval_lib { | |
27 | ||
28 | template<class Rounding, class Checking> | |
29 | struct policies { | |
30 | typedef Rounding rounding; | |
31 | typedef Checking checking; | |
32 | }; | |
33 | ||
34 | template<class OldInterval, class NewRounding> | |
35 | struct change_rounding { | |
36 | typedef ... type; | |
37 | }; | |
38 | ||
39 | template<class OldInterval, class NewChecking> | |
40 | struct change_checking { | |
41 | typedef ... type; | |
42 | }; | |
43 | ||
44 | template<class OldInterval> | |
45 | struct unprotect { | |
46 | typedef ... type; | |
47 | }; | |
48 | ||
49 | } // namespace interval_lib | |
50 | } // namespace numeric | |
51 | } // namespace boost | |
52 | </pre> | |
53 | ||
54 | <p>The <code>policies</code> template should be used whenever the user | |
55 | needs to define a policy structure for an <code>interval</code> class. | |
56 | <code>change_rounding</code> and <code>change_checking</code> can be used | |
57 | to get the type of a new interval by changing one of the policies of an old | |
58 | interval; the new type is available thanks to the type definition | |
59 | <code>type</code>. Finally, <code>unprotect</code> looks like | |
60 | <code>change_rounding</code> and directly changes the rounding of an | |
61 | interval to its unprotected version (a better explanation is available | |
62 | <a href="rounding.htm#perfexp">here</a>).</p> | |
63 | <hr> | |
64 | ||
65 | <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src= | |
66 | "../../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional" | |
67 | height="31" width="88"></a></p> | |
68 | ||
69 | <p>Revised | |
70 | <!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d" startspan -->2006-12-24<!--webbot bot="Timestamp" endspan i-checksum="12172" --></p> | |
71 | ||
72 | <p><i>Copyright © 2002 Guillaume Melquiond, Sylvain Pion, Hervé | |
73 | Brönnimann, Polytechnic University</i></p> | |
74 | ||
75 | <p><i>Distributed under the Boost Software License, Version 1.0. (See | |
76 | accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> | |
77 | or copy at <a href= | |
78 | "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p> | |
79 | </body> | |
80 | </html> |