Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/regex/doc/configuration.html @ 33

Last change on this file since 33 was 29, checked in by landauf, 16 years ago

updated boost from 1_33_1 to 1_34_1

File size: 8.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3   <head>
4      <title>Boost.Regex: Configuration and setup</title>
5      <meta name="generator" content="HTML Tidy, see www.w3.org">
6      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
7      <link rel="stylesheet" type="text/css" href="../../../boost.css">
8   </head>
9   <body>
10      <table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
11         <tr>
12            <td valign="top" width="300">
13               <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
14            </td>
15            <td width="353">
16               <h1 align="center">Boost.Regex</h1>
17               <h2 align="center">Configuration and setup</h2>
18            </td>
19            <td width="50">
20               <h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
21            </td>
22         </tr>
23      </table>
24      <br>
25      <br>
26      <hr>
27      <h2>Contents</h2>
28      <dl class="index">
29         <dt><a href="#compiler">Compiler setup</a> <dt><a href="#locale">Locale and traits class
30                  selection</a> <dt><a href="#linkage">Linkage Options</a> <dt><a href="#algorithm">Algorithm
31                        Selection</a> <dt><a href="#tuning">Algorithm Tuning</a></dt>
32      </dl>
33      <h3><a name="compiler"></a>Compiler setup.</h3>
34      <p>You shouldn't need to do anything special to configure boost.regex for use with
35         your compiler - the <a href="../../config/index.html">boost.config</a> subsystem
36         should already take care of it, if you do have problems (or you are using a
37         particularly obscure compiler or platform) then <a href="../../config/index.html">boost.config</a>&nbsp;has
38         a&nbsp;<a href="../../config/config.htm#config_script">configure</a> script.</p>
39      <h3><a name="locale"></a>Locale and traits class selection.</h3>
40      <p>The following macros (see <a href="../../../boost/regex/user.hpp">user.hpp</a>)
41         control how boost.regex interacts with the user's locale:</p>
42      <table id="Table2" cellspacing="1" cellpadding="1" width="100%" border="1">
43         <tr>
44            <td width="265">BOOST_REGEX_USE_C_LOCALE</td>
45            <td>
46               Forces boost.regex to use the global C locale in its traits class support: this
47               is now deprecated in favour of the C++ locale.</td>
48         </tr>
49         <tr>
50            <td width="265">BOOST_REGEX_USE_CPP_LOCALE</td>
51            <td>Forces boost.regex to use std::locale in it's default traits class, regular
52               expressions can then be imbued with an instance&nbsp;specific locale.&nbsp; 
53               This is the default behaviour on non-Windows platforms.</td>
54         </tr>
55         <tr>
56            <td width="265">BOOST_REGEX_NO_W32</td>
57            <td>Tells boost.regex not to use any Win32 API's even when available (implies
58               BOOST_REGEX_USE_CPP_LOCALE unless BOOST_REGEX_USE_C_LOCALE is set).</td>
59         </tr>
60      </table>
61      <br>
62      <br>
63      <h3><a name="linkage"></a>Linkage Options</h3>
64      <table id="Table3" cellspacing="1" cellpadding="1" width="100%" border="1">
65         <tr>
66            <td>BOOST_REGEX_DYN_LINK</td>
67            <td>For Microsoft and Borland C++ builds, this tells boost.regex that it should
68               link to the dll build of the boost.regex.&nbsp; By default boost.regex will
69               link to its static library build, even if the dynamic C runtime library is in
70               use.</td>
71         </tr>
72         <tr>
73            <td>BOOST_REGEX_NO_LIB</td>
74            <td>For Microsoft and Borland C++ builds, this tells boost.regex that it should
75               not automatically select the library to link to.</td>
76         </tr>
77      </table>
78      <br>
79      <br>
80      <h3><a name="algorithm"></a>Algorithm Selection</h3>
81      <table id="Table4" cellspacing="1" cellpadding="1" width="100%" border="1">
82         <tr>
83            <td width="253">BOOST_REGEX_RECURSIVE</td>
84            <td>Tells boost.regex to use a stack-recursive matching algorithm.&nbsp; This is
85               generally the fastest option (although there is very little in it), but can
86               cause stack overflow in extreme cases, on Win32 this can be handled safely, but
87               this is not the case on other platforms.</td>
88         </tr>
89         <tr>
90            <td width="253">BOOST_REGEX_NON_RECURSIVE</td>
91            <td>Tells boost.regex to use a non-stack recursive matching algorithm, this can be
92               slightly slower than the alternative, but is always safe no matter how
93               pathological the regular expression.&nbsp; This is the default on non-Win32
94               platforms.</td>
95         </tr>
96      </table>
97      <br>
98      <br>
99      <h3><a name="tuning"></a>Algorithm Tuning</h3>
100      <p>The following option applies only if BOOST_REGEX_RECURSIVE is set.</p>
101      <table id="Table6" cellspacing="1" cellpadding="1" width="100%" border="1">
102         <tr>
103            <td>BOOST_REGEX_HAS_MS_STACK_GUARD</td>
104            <td>Tells boost.regex that Microsoft style __try - __except blocks are supported,
105               and can be used to safely trap stack overflow.</td>
106         </tr>
107      </table>
108      <br>
109      <br>
110      <p>The following options apply only if BOOST_REGEX_NON_RECURSIVE is set.</p>
111      <table id="Table5" cellspacing="1" cellpadding="1" width="100%" border="1">
112         <tr>
113            <td>BOOST_REGEX_BLOCKSIZE</td>
114            <td>In non-recursive mode, boost.regex uses largish blocks of memory to act as a
115               stack for the state machine, the larger the block size then the fewer
116               allocations that will take place.&nbsp; This defaults to 4096 bytes, which is
117               large enough to match the vast majority of regular expressions&nbsp;without
118               further allocations, however, you can choose smaller or larger values depending
119               upon your platforms characteristics.</td>
120         </tr>
121         <tr>
122            <td>BOOST_REGEX_MAX_BLOCKS</td>
123            <td>Tells boost.regex how many blocks of size BOOST_REGEX_BLOCKSIZE it is
124               permitted to use.&nbsp; If this value is exceeded then boost.regex will stop
125               trying to find a match and throw a std::runtime_error.&nbsp; Defaults to 1024,
126               don't forget to tweek this value if you alter BOOST_REGEX_BLOCKSIZE by much.</td>
127         </tr>
128         <tr>
129            <td>BOOST_REGEX_MAX_CACHE_BLOCKS</td>
130            <td>Tells boost.regex how many memory blocks to store in it's internal cache -
131               memory blocks are taken from this cache rather than by calling ::operator
132               new.&nbsp; Generally speeking this can be an order of magnitude faster than
133               calling ::opertator new each time a memory block is required, but has the
134               downside that boost.regex can end up caching a large chunk of memory (by
135               default up to 16 blocks each of BOOST_REGEX_BLOCKSIZE size).&nbsp; If memory is
136               tight then try defining this to 0 (disables all caching), or if that is too
137               slow, then a value of 1 or 2, may be sufficient.&nbsp; On the other hand, on
138               large multi-processor, multi-threaded systems, you may find that a higher value
139               is in order.</td>
140         </tr>
141      </table>
142      <br>
143      <br>
144      <hr>
145      <p>Revised&nbsp; 
146         <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan --> 
147         23 June 2004&nbsp; 
148         <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
149      <p><i>© Copyright John Maddock&nbsp;1998-
150            <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->  2004<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
151      <P><I>Use, modification and distribution are subject to the Boost Software License,
152            Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
153            or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
154   </body>
155</html>
Note: See TracBrowser for help on using the repository browser.