diff --git a/appendix.htm b/appendix.htm index aab81a12..beff497e 100644 --- a/appendix.htm +++ b/appendix.htm @@ -13,7 +13,7 @@

C++ Boost

Regex++, Appendices.

-

(version 3.10, 18 April 2000)

+

(version 3.11, 18 April 2000)

Copyright (c) 1998-2000
 Dr John Maddock
 
diff --git a/configure b/configure
index cd924e72..33f1220e 100644
--- a/configure
+++ b/configure
@@ -22,8 +22,6 @@ ac_help="$ac_help
 ac_help="$ac_help
 --enable-force-cross forces cross compile mode"
 ac_help="$ac_help
---disable-mutable turns off mutable support"
-ac_help="$ac_help
 --disable-ms-windows turns off native MS Windows support (when available)"
 ac_help="$ac_help
 --disable-threads turns off multi-threading support (when available)"
@@ -38,8 +36,6 @@ ac_help="$ac_help
 ac_help="$ac_help
 --disable-messages turns off support for POSIX message categories, when available."
 ac_help="$ac_help
---disable-nested-template-prefix turns off use of \"template\" as the nested template class access specifier."
-ac_help="$ac_help
 --disable-fastcall turns off use __fastcall and __stdcall."
 
 # Initialize some variables set by options.
@@ -627,7 +623,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:631: checking for $ac_word" >&5
+echo "configure:627: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -658,7 +654,7 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:662: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:658: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
 
 ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -668,11 +664,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
 
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cxx_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -698,12 +694,12 @@ if test $ac_cv_prog_cxx_works = no; then
   { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:702: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:698: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:707: checking whether we are using GNU C++" >&5
+echo "configure:703: checking whether we are using GNU C++" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -712,7 +708,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gxx=yes
 else
   ac_cv_prog_gxx=no
@@ -727,7 +723,7 @@ if test $ac_cv_prog_gxx = yes; then
   ac_save_CXXFLAGS="$CXXFLAGS"
   CXXFLAGS=
   echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:731: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:727: checking whether ${CXX-g++} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -766,7 +762,7 @@ cross_compiling=$ac_cv_prog_cxx_cross
 ac_ext=$use_ac_ext
 
 echo $ac_n "checking for object file extention""... $ac_c" 1>&6
-echo "configure:770: checking for object file extention" >&5
+echo "configure:766: checking for object file extention" >&5
 cat > "xyqtcz.$ac_ext" << EOF
 
 int main()
@@ -790,7 +786,7 @@ ac_obj_ext='.o'
 fi
 
 echo $ac_n "checking for executable file extention""... $ac_c" 1>&6
-echo "configure:794: checking for executable file extention" >&5
+echo "configure:790: checking for executable file extention" >&5
 ac_exe_ext=""
 for file in /bin/sh.*
 do
@@ -817,7 +813,7 @@ echo forced cross compilation mode turned on
 fi
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:821: checking size of short" >&5
+echo "configure:817: checking size of short" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -825,7 +821,7 @@ else
   ac_cv_sizeof_short="$enable_sizeof_short"
 else
   cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -860,7 +856,7 @@ EOF
 
 ac_ext=$use_ac_ext
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:864: checking size of int" >&5
+echo "configure:860: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -868,7 +864,7 @@ else
   ac_cv_sizeof_int="$enable_sizeof_int"
 else
   cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -903,7 +899,7 @@ EOF
 
 ac_ext=$use_ac_ext
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:907: checking size of long" >&5
+echo "configure:903: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -911,7 +907,7 @@ else
   ac_cv_sizeof_long="$enable_sizeof_long"
 else
   cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -960,26 +956,13 @@ EOF
 
 
 
-if test "$ac_cv_sizeof_int" -lt 4; then
-    if test "$ac_cv_sizeof_long" -ge 4; then
-      cat >> confdefs.h <<\EOF
-#define BOOST_RE_INT32_LONG 1
-EOF
-
-    else
-      { echo "configure: error: Cannot find any 32-bit integer type for your compiler" 1>&2; exit 1; }
-    fi
-  ac_ext=$use_ac_ext
-fi
-ac_ext=$use_ac_ext
-
 
 ac_ext=$use_ac_ext
 
 echo $ac_n "checking for basic template compatibility""... $ac_c" 1>&6
-echo "configure:981: checking for basic template compatibility" >&5
+echo "configure:964: checking for basic template compatibility" >&5
 cat > conftest.$ac_ext <
@@ -1011,7 +994,7 @@ i = p(k, j);
 
 ; return 0; }
 EOF
-if { (eval echo configure:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_compat="yes"
 else
@@ -1026,9 +1009,9 @@ rm -f conftest*
 echo "$ac_t""$ac_cv_compat" 1>&6
 
 echo $ac_n "checking for exception support""... $ac_c" 1>&6
-echo "configure:1030: checking for exception support" >&5
+echo "configure:1013: checking for exception support" >&5
 cat > conftest.$ac_ext <
@@ -1059,7 +1042,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1072,66 +1055,10 @@ fi
 rm -f conftest*
 
 
-# Check whether --enable-mutable or --disable-mutable was given.
-if test "${enable_mutable+set}" = set; then
-  enableval="$enable_mutable"
-  :
-fi
-
-if test "$enable_mutable" = "no"; then
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_MUTABLE 
-EOF
-
-else
-
-echo $ac_n "checking for mutable keyword""... $ac_c" 1>&6
-echo "configure:1090: checking for mutable keyword" >&5
-cat > conftest.$ac_ext <
-
-class foo
-{
- mutable int val;
- public:
- foo(int i) : val(i) {}
- void set(int i)const;
-};
-
-void foo::set(int i)const
-{
- val = i;
-}
-
-int main() {
-
- const foo f(4);
- f.set(3);
-
-; return 0; }
-EOF
-if { (eval echo configure:1117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_MUTABLE 
-EOF
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-fi
-
 echo $ac_n "checking for default template parameter support""... $ac_c" 1>&6
-echo "configure:1133: checking for default template parameter support" >&5
+echo "configure:1060: checking for default template parameter support" >&5
 cat > conftest.$ac_ext <
@@ -1152,7 +1079,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1083: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1164,9 +1091,9 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking for derived default template parameter support""... $ac_c" 1>&6
-echo "configure:1168: checking for derived default template parameter support" >&5
+echo "configure:1095: checking for derived default template parameter support" >&5
 cat > conftest.$ac_ext <
@@ -1194,7 +1121,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1207,9 +1134,9 @@ rm -f conftest*
 
 
 echo $ac_n "checking for function template partial ordering""... $ac_c" 1>&6
-echo "configure:1211: checking for function template partial ordering" >&5
+echo "configure:1138: checking for function template partial ordering" >&5
 cat > conftest.$ac_ext <
@@ -1240,7 +1167,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1254,61 +1181,6 @@ EOF
 fi
 rm -f conftest*
 
-echo $ac_n "checking for template friend functions""... $ac_c" 1>&6
-echo "configure:1259: checking for template friend functions" >&5
-cat > conftest.$ac_ext <
-
-template 
-void foo(T2 t);
-
-template 
-struct dummy
-{
-	template  friend void foo(T2);
-private:
-	void foo2();
-	void foo3()const;
-};
-
-template 
-void foo(T2 t)
-{
-	dummy d1;
-	d1.foo2();
-	d1.foo3();
-	dummy d2;
-	d2.foo2();
-	d2.foo3();
-}
-
-
-
-int main() {
-
-	foo(3);
-	foo(2.345);
-
-; return 0; }
-EOF
-if { (eval echo configure:1298: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_TEMPLATE_FRIEND 
-EOF
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-
 
 # Check whether --enable-ms-windows or --disable-ms-windows was given.
 if test "${enable_ms_windows+set}" = set; then
@@ -1325,9 +1197,9 @@ fi
 if test "$enable_ms_windows" != "no"; then
 
 echo $ac_n "checking for MS Windows""... $ac_c" 1>&6
-echo "configure:1329: checking for MS Windows" >&5
+echo "configure:1201: checking for MS Windows" >&5
 cat > conftest.$ac_ext <
@@ -1344,13 +1216,9 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   iswin="true"
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_PLATFORM_WINDOWS 
-EOF
- 
 echo "$ac_t""yes" 1>&6
 else
   echo "configure: failed program was:" >&5
@@ -1365,9 +1233,9 @@ fi
 
 if test "$enable_ms_windows" != "no"; then
 echo $ac_n "checking for MS Win32""... $ac_c" 1>&6
-echo "configure:1369: checking for MS Win32" >&5
+echo "configure:1237: checking for MS Win32" >&5
 cat > conftest.$ac_ext <
@@ -1383,7 +1251,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1401,7 +1269,7 @@ if test "$enable_ms_windows" != "no"; then
 
 if test "$CXX" != "cl"; then
 echo $ac_n "checking for main in -luser32""... $ac_c" 1>&6
-echo "configure:1405: checking for main in -luser32" >&5
+echo "configure:1273: checking for main in -luser32" >&5
 ac_lib_var=`echo user32'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1409,14 +1277,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-luser32  $LIBS"
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1437,7 +1305,7 @@ else
 fi
 
 echo $ac_n "checking for main in -lkernel32""... $ac_c" 1>&6
-echo "configure:1441: checking for main in -lkernel32" >&5
+echo "configure:1309: checking for main in -lkernel32" >&5
 ac_lib_var=`echo kernel32'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1445,14 +1313,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lkernel32  $LIBS"
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1475,7 +1343,7 @@ fi
 fi
 
 cat > conftest.$ac_ext <
@@ -1494,13 +1362,13 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   
 if test "enable_threads" != "no"; then
 # turn on threading support:
 echo $ac_n "checking for mult-thread support""... $ac_c" 1>&6
-echo "configure:1504: checking for mult-thread support" >&5
+echo "configure:1372: checking for mult-thread support" >&5
 echo "$ac_t"""yes"" 1>&6
 cat >> confdefs.h <<\EOF
 #define BOOST_RE_THREADS 
@@ -1535,43 +1403,11 @@ rm -f conftest*
 fi
 
 
-if test "$iswin" != "true"; then
-
-echo $ac_n "checking for MS DOS""... $ac_c" 1>&6
-echo "configure:1542: checking for MS DOS" >&5
-cat > conftest.$ac_ext <
-
-int main() {
-
- int i = _doserrno;
-
-; return 0; }
-EOF
-if { (eval echo configure:1555: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define BOOST_RE_PLATFORM_DOS 
-EOF
- echo "$ac_t""yes" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-
-fi
-
 
 echo $ac_n "checking for bool support""... $ac_c" 1>&6
-echo "configure:1573: checking for bool support" >&5
+echo "configure:1409: checking for bool support" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1612,9 +1448,9 @@ EOF
 else
 
 echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:1616: checking for " >&5
+echo "configure:1452: checking for " >&5
 cat > conftest.$ac_ext <
@@ -1624,7 +1460,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1649,9 +1485,9 @@ EOF
 else
 
 echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:1653: checking for " >&5
+echo "configure:1489: checking for " >&5
 cat > conftest.$ac_ext <
@@ -1661,7 +1497,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1687,9 +1523,9 @@ EOF
 else
 
 echo $ac_n "checking for wide string functions""... $ac_c" 1>&6
-echo "configure:1691: checking for wide string functions" >&5
+echo "configure:1527: checking for wide string functions" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 enable_wstring="yes"
@@ -1741,9 +1577,9 @@ fi
 
 if test "$enable_wstring" != "no"; then
 echo $ac_n "checking for swprintf support""... $ac_c" 1>&6
-echo "configure:1745: checking for swprintf support" >&5
+echo "configure:1581: checking for swprintf support" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1789,15 +1625,15 @@ fi
 
 if test "$enable_member_templates" = "no"; then
 cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_MEMBER_TEMPLATES 
+#define BOOST_NO_MEMBER_TEMPLATES 
 EOF
 
 else
 
 echo $ac_n "checking for member template classes and functions""... $ac_c" 1>&6
-echo "configure:1799: checking for member template classes and functions" >&5
+echo "configure:1635: checking for member template classes and functions" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1842,7 +1678,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_MEMBER_TEMPLATES 
+#define BOOST_NO_MEMBER_TEMPLATES 
 EOF
 
 echo "$ac_t""no" 1>&6
@@ -1865,9 +1701,9 @@ EOF
 else
 
 echo $ac_n "checking for parameterised function returns""... $ac_c" 1>&6
-echo "configure:1869: checking for parameterised function returns" >&5
+echo "configure:1705: checking for parameterised function returns" >&5
 cat > conftest.$ac_ext <
@@ -1881,7 +1717,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1885: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -1912,7 +1748,7 @@ EOF
 else
 
 echo $ac_n "checking for 64-bit integral type""... $ac_c" 1>&6
-echo "configure:1916: checking for 64-bit integral type" >&5
+echo "configure:1752: checking for 64-bit integral type" >&5
 
 if test "$ac_cv_sizeof_short" -eq 8; then
 cat >> confdefs.h <<\EOF
@@ -1940,7 +1776,7 @@ have_int64="true"
 fi
 if test "$have_int64" != "true"; then
 cat > conftest.$ac_ext <
@@ -1952,7 +1788,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1956: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes - int64_t" 1>&6
 have_int64="true"
@@ -1971,7 +1807,7 @@ fi
 if test "$have_int64" != "true"; then
 
 cat > conftest.$ac_ext <
@@ -1983,7 +1819,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes - long long" 1>&6
 have_int64="true"
@@ -2003,7 +1839,7 @@ fi
 if test "$have_int64" != "true"; then
 
 cat > conftest.$ac_ext <
@@ -2015,7 +1851,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes - __int64" 1>&6
 have_int64="true"
@@ -2054,7 +1890,7 @@ EOF
 else
 
 echo $ac_n "checking for catopen in -lnl_types""... $ac_c" 1>&6
-echo "configure:2058: checking for catopen in -lnl_types" >&5
+echo "configure:1894: checking for catopen in -lnl_types" >&5
 ac_lib_var=`echo nl_types'_'catopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2062,7 +1898,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnl_types  $LIBS"
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2104,7 +1940,7 @@ else
 fi
 
 echo $ac_n "checking for catopen in -lposix""... $ac_c" 1>&6
-echo "configure:2108: checking for catopen in -lposix" >&5
+echo "configure:1944: checking for catopen in -lposix" >&5
 ac_lib_var=`echo posix'_'catopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2112,7 +1948,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2155,9 +1991,9 @@ fi
 
 
 echo $ac_n "checking for POSIX message categories""... $ac_c" 1>&6
-echo "configure:2159: checking for POSIX message categories" >&5
+echo "configure:1995: checking for POSIX message categories" >&5
 cat > conftest.$ac_ext <
@@ -2171,7 +2007,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -2191,7 +2027,7 @@ fi
 if test "$enable_threads" != "no" && test "$enable_ms_windows" = "no"; then
 
 echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
-echo "configure:2195: checking for pthread_mutex_init in -lpthread" >&5
+echo "configure:2031: checking for pthread_mutex_init in -lpthread" >&5
 ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2199,7 +2035,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2241,7 +2077,7 @@ else
 fi
 
 echo $ac_n "checking for pthread_mutex_init in -lposix""... $ac_c" 1>&6
-echo "configure:2245: checking for pthread_mutex_init in -lposix" >&5
+echo "configure:2081: checking for pthread_mutex_init in -lposix" >&5
 ac_lib_var=`echo posix'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2249,7 +2085,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2292,9 +2128,9 @@ fi
 
 
 echo $ac_n "checking for POSIX threads""... $ac_c" 1>&6
-echo "configure:2296: checking for POSIX threads" >&5
+echo "configure:2132: checking for POSIX threads" >&5
 cat > conftest.$ac_ext <
@@ -2311,7 +2147,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -2329,145 +2165,6 @@ rm -f conftest*
 fi
 
 
-# Check whether --enable-nested-template-prefix or --disable-nested-template-prefix was given.
-if test "${enable_nested_template_prefix+set}" = set; then
-  enableval="$enable_nested_template_prefix"
-  :
-fi
-
-if test "$enable_nested_template_prefix" = "no" || test "$enable_member_templates" = "no"; then
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NESTED_TEMPLATE_DECL 
-EOF
-
-else
-
-echo $ac_n "checking for template nested class access""... $ac_c" 1>&6
-echo "configure:2347: checking for template nested class access" >&5
-cat > conftest.$ac_ext <
-class alloc
-{
-public:
- void* allocate(int);
- void deallocate(void*);
- alloc();
- alloc(const alloc&);
- template 
- alloc(const alloc&) {}
- alloc& operator=(const alloc&);
- template 
- alloc& operator=(const alloc&)
- { return *this; }
- 
- template 
- struct rebind
- {
-  typedef alloc other;
- };
-};
-
-
-int main() {
-
- alloc ia;
- alloc da(ia);
- alloc fa;
- fa.allocate(5);
- fa = ia;
- alloc::template rebind::other da2(ia);
-
-; return 0; }
-EOF
-if { (eval echo configure:2386: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  
-echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NESTED_TEMPLATE_DECL template
-EOF
-
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NESTED_TEMPLATE_DECL 
-EOF
-
-echo "$ac_t""no" 1>&6
-
-fi
-rm -f conftest*
-
-fi
-
-echo $ac_n "checking for explicit template instantiation""... $ac_c" 1>&6
-echo "configure:2412: checking for explicit template instantiation" >&5
-cat > conftest.$ac_ext <
-
-template 
-class factorial
-{
-public:
-	factorial();
-	T operator()(T);
-};
-
-template 
-factorial::factorial()
-{
-}
-
-template 
-T factorial::operator()(T t)
-{
-	T result = 1;
-	for(T i = 1; i <= t; ++i)
-	{
-		result *= i;
-	}
-	return result;
-}
-
-template class factorial;
-template class factorial;
-
-int main() {
-
-
-; return 0; }
-EOF
-if { (eval echo configure:2452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  
-echo "$ac_t""yes" 1>&6
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_TEMPLATE_INST 
-EOF
-
-echo "$ac_t""no" 1>&6
-
-fi
-rm -f conftest*
-
-
 # Check whether --enable-fastcall or --disable-fastcall was given.
 if test "${enable_fastcall+set}" = set; then
   enableval="$enable_fastcall"
@@ -2486,9 +2183,9 @@ EOF
 else
 
 echo $ac_n "checking for __fastcall and __stdcall""... $ac_c" 1>&6
-echo "configure:2490: checking for __fastcall and __stdcall" >&5
+echo "configure:2187: checking for __fastcall and __stdcall" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2208: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -2541,9 +2238,9 @@ fi
 
 
 echo $ac_n "checking for standard library namespace""... $ac_c" 1>&6
-echo "configure:2545: checking for standard library namespace" >&5
+echo "configure:2242: checking for standard library namespace" >&5
 cat > conftest.$ac_ext <
@@ -2567,7 +2264,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes - std" 1>&6
 have_std_namespace="yes"
@@ -2581,129 +2278,11 @@ else
 fi
 rm -f conftest*
 
-echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2586: checking for " >&5
-cat > conftest.$ac_ext <
-
-
-int main() {
-
-
-; return 0; }
-EOF
-if { (eval echo configure:2599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_ITERATOR_H 
-EOF
-
-
-fi
-rm -f conftest*
-
-echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2617: checking for " >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
-
-; return 0; }
-EOF
-if { (eval echo configure:2631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-need_algo="yes"
-
-fi
-rm -f conftest*
-
-if test "$enable_stl" != "no" && test "$need_algo" = "yes"; then
-echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2647: checking for " >&5
-cat > conftest.$ac_ext <
-
-
-int main() {
-
-
-; return 0; }
-EOF
-if { (eval echo configure:2660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_USE_ALGO 
-EOF
-
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no - disabling STL support" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_STL 
-EOF
-
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_EXCEPTION_H 
-EOF
-
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_ITERATOR_H 
-EOF
-
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_MEMORY_H 
-EOF
-
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_LOCALE_H 
-EOF
-
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_STRING_H 
-EOF
-
-enable_stl="no"
-
-fi
-rm -f conftest*
-
-fi
 
 echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2705: checking for " >&5
+echo "configure:2284: checking for " >&5
 cat > conftest.$ac_ext <
@@ -2712,7 +2291,7 @@ cat > conftest.$ac_ext <
 struct tester
 {
-	typedef typename A::BOOST_RE_NESTED_TEMPLATE_DECL rebind binder;
+	typedef typename A::template rebind binder;
 	typedef typename binder::other alloc_type;
 	alloc_type a;
 	tester(A al): a(al) {}
@@ -2723,7 +2302,7 @@ std::allocator d(a);
 
 typedef std::allocator alloc_type;
 
-alloc_type::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other o(a);
+alloc_type::template rebind::other o(a);
 
 tester > t(a);
 
@@ -2732,7 +2311,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 
@@ -2742,7 +2321,7 @@ else
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
 cat >> confdefs.h <<\EOF
-#define BOOST_RE_NO_MEMORY_H 
+#define BOOST_NO_STD_ALLOCATOR 
 EOF
 
 
@@ -2752,9 +2331,9 @@ rm -f conftest*
 
 if test "$enable_stl" != "no"; then
 echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2756: checking for " >&5
+echo "configure:2335: checking for " >&5
 cat > conftest.$ac_ext <
@@ -2769,7 +2348,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 
@@ -2787,9 +2366,9 @@ fi
 
 if test "$enable_stl" != "no"; then
 echo $ac_n "checking for std::basic_string default arguments""... $ac_c" 1>&6
-echo "configure:2791: checking for std::basic_string default arguments" >&5
+echo "configure:2370: checking for std::basic_string default arguments" >&5
 cat > conftest.$ac_ext <
@@ -2804,7 +2383,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 
@@ -2826,9 +2405,9 @@ fi
 ac_have_locale='no'
 if test "$enable_stl" != "no"; then
 echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2830: checking for " >&5
+echo "configure:2409: checking for " >&5
 cat > conftest.$ac_ext <
@@ -2849,7 +2428,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2853: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 ac_have_locale='yes'
@@ -2871,9 +2450,9 @@ fi
 
 if test "$enable_stl" != "no"; then
 echo $ac_n "checking for ""... $ac_c" 1>&6
-echo "configure:2875: checking for " >&5
+echo "configure:2454: checking for " >&5
 cat > conftest.$ac_ext <
@@ -2889,7 +2468,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 
@@ -2909,9 +2488,9 @@ rm -f conftest*
 fi
 
 echo $ac_n "checking for std::distance""... $ac_c" 1>&6
-echo "configure:2913: checking for std::distance" >&5
+echo "configure:2492: checking for std::distance" >&5
 cat > conftest.$ac_ext <
@@ -2925,7 +2504,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2929: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -2942,7 +2521,7 @@ rm -f conftest*
 
 if test "$enable_stl" != "no" && test "$have_dist" != "yes"; then
 cat > conftest.$ac_ext <
@@ -2956,7 +2535,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -2980,339 +2559,12 @@ rm -f conftest*
 
 fi
 
-if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
-echo $ac_n "checking for standard iterator syntax""... $ac_c" 1>&6
-echo "configure:2986: checking for standard iterator syntax" >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::iterator oi;
- std::iterator ii;
- std::iterator fi;
- std::iterator bi;
- std::iterator ri;
-
-; return 0; }
-EOF
-if { (eval echo configure:3005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_ITERATOR_T_1 1
-EOF
-
-have_si="yes"
-have_oi="yes"
-have_ii="yes"
-have_fi="yes"
-have_bi="yes"
-have_ri="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::iterator oi;
- std::iterator ii;
- std::iterator fi;
- std::iterator bi;
- std::iterator ri;
-
-; return 0; }
-EOF
-if { (eval echo configure:3046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_ITERATOR_T_2 1
-EOF
-
-have_si="yes"
-have_oi="yes"
-have_ii="yes"
-have_fi="yes"
-have_bi="yes"
-have_ri="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_ITERATOR_T_0 1
-EOF
-
-
-fi
-
-
-if test "$have_oi" != "yes"; then
-echo $ac_n "checking for output iterator syntax""... $ac_c" 1>&6
-echo "configure:3077: checking for output iterator syntax" >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::output_iterator oi;
-
-; return 0; }
-EOF
-if { (eval echo configure:3092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_OI_T_3 1
-EOF
-
-have_oi="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_OI_T_0 1
-EOF
-
-have_oi="yes"
-fi
-rm -f conftest*
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
-echo $ac_n "checking for input iterator syntax""... $ac_c" 1>&6
-echo "configure:3118: checking for input iterator syntax" >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::input_iterator oi;
-
-; return 0; }
-EOF
-if { (eval echo configure:3133: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_II_T_3 1
-EOF
-
-have_ii="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::input_iterator oi;
-
-; return 0; }
-EOF
-if { (eval echo configure:3165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_II_T_4 1
-EOF
-
-have_ii="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_II_T_0 1
-EOF
-
-have_ii="yes"
-fi
-rm -f conftest*
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_fi" != "yes"; then
-echo $ac_n "checking for forward iterator syntax""... $ac_c" 1>&6
-echo "configure:3191: checking for forward iterator syntax" >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::forward_iterator oi;
-
-; return 0; }
-EOF
-if { (eval echo configure:3206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_FI_T_3 1
-EOF
-
-have_fi="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_FI_T_0 1
-EOF
-
-have_fi="yes"
-fi
-rm -f conftest*
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_bi" != "yes"; then
-echo $ac_n "checking for bidirectional iterator syntax""... $ac_c" 1>&6
-echo "configure:3232: checking for bidirectional iterator syntax" >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::bidirectional_iterator oi;
-
-; return 0; }
-EOF
-if { (eval echo configure:3247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_BI_T_ 1
-EOF
-
-have_bi="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_BI_T_0 1
-EOF
-
-have_bi="yes"
-fi
-rm -f conftest*
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_ri" != "yes"; then
-echo $ac_n "checking for random access iterator syntax""... $ac_c" 1>&6
-echo "configure:3273: checking for random access iterator syntax" >&5
-cat > conftest.$ac_ext <
-#include "confdefs.h"
-
-
-int main() {
-
- std::random_access_iterator oi;
-
-; return 0; }
-EOF
-if { (eval echo configure:3288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_RI_T_3 1
-EOF
-
-have_ri="yes"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define BOOST_RE_RI_T_0 1
-EOF
-
-have_ri="yes"
-fi
-rm -f conftest*
-
-fi
 
 if test "$enable_stl" != "no"; then
 echo $ac_n "checking for output iterator assignment""... $ac_c" 1>&6
-echo "configure:3314: checking for output iterator assignment" >&5
+echo "configure:2566: checking for output iterator assignment" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 
@@ -3483,9 +2735,9 @@ old_libs="$LIBS"
 LIBS="conf2.cpp $old_libs"
 
 echo $ac_n "checking for link time template merging""... $ac_c" 1>&6
-echo "configure:3487: checking for link time template merging" >&5
+echo "configure:2739: checking for link time template merging" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -3522,9 +2774,9 @@ if eval "$CXX $CXXFLAGS -c conf2.cpp" && eval "ar -rc libconf2.a conf2$ac_obj_ex
 LIBS="-L./ -lconf2 $old_libs"
 
 echo $ac_n "checking for link time template merging from archive files""... $ac_c" 1>&6
-echo "configure:3526: checking for link time template merging from archive files" >&5
+echo "configure:2778: checking for link time template merging from archive files" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -3666,9 +2918,9 @@ old_libs="$LIBS"
 LIBS="conf2.cpp $old_libs"
 
 echo $ac_n "checking for link time template merging of switch statements""... $ac_c" 1>&6
-echo "configure:3670: checking for link time template merging of switch statements" >&5
+echo "configure:2922: checking for link time template merging of switch statements" >&5
 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -4064,5 +3316,6 @@ rm -f jm_opt.out
 
 
 
+
 
 
diff --git a/configure.in b/configure.in
index 9cd6b6ed..5ad49e5d 100644
--- a/configure.in
+++ b/configure.in
@@ -111,16 +111,6 @@ AC_DEFINE_UNQUOTED(BOOST_RE_SIZEOF_INT, [$ac_cv_sizeof_int])
 AC_DEFINE_UNQUOTED(BOOST_RE_SIZEOF_LONG, [$ac_cv_sizeof_long])
 
 
-if test "$ac_cv_sizeof_int" -lt 4; then
-    if test "$ac_cv_sizeof_long" -ge 4; then
-      AC_DEFINE(BOOST_RE_INT32_LONG)
-    else
-      AC_MSG_ERROR(Cannot find any 32-bit integer type for your compiler)
-    fi
-  ac_ext=$use_ac_ext
-fi
-ac_ext=$use_ac_ext
-
 
 ac_ext=$use_ac_ext
 
@@ -192,37 +182,6 @@ void do_throw()
 AC_MSG_ERROR(Sorry, without exception handling you can't compile this library)])
 
 
-AC_ARG_ENABLE(mutable, [--disable-mutable turns off mutable support])
-if test "$enable_mutable" = "no"; then
-AC_DEFINE(BOOST_RE_NO_MUTABLE, [])
-else
-
-AC_MSG_CHECKING(for mutable keyword)
-AC_TRY_COMPILE(
-[ 
-#include 
-
-class foo
-{
- mutable int val;
- public:
- foo(int i) : val(i) {}
- void set(int i)const;
-};
-
-void foo::set(int i)const
-{
- val = i;
-}
-],
-[
- const foo f(4);
- f.set(3);
-],
-[AC_MSG_RESULT(yes)],
-[AC_DEFINE(BOOST_RE_NO_MUTABLE, []) AC_MSG_RESULT(no)])
-fi
-
 AC_MSG_CHECKING(for default template parameter support)
 AC_TRY_COMPILE(
 [ 
@@ -304,44 +263,6 @@ int foo(const dummy& )
 [AC_MSG_RESULT(yes)],
 [AC_DEFINE(BOOST_RE_NO_PARTIAL_FUNC_SPEC, []) AC_MSG_RESULT(no)])
 
-AC_MSG_CHECKING([for template friend functions])
-AC_TRY_COMPILE(
-[ 
-#include 
-
-template 
-void foo(T2 t);
-
-template 
-struct dummy
-{
-	template  friend void foo(T2);
-private:
-	void foo2();
-	void foo3()const;
-};
-
-template 
-void foo(T2 t)
-{
-	dummy d1;
-	d1.foo2();
-	d1.foo3();
-	dummy d2;
-	d2.foo2();
-	d2.foo3();
-}
-
-
-],
-[
-	foo(3);
-	foo(2.345);
-],
-[AC_MSG_RESULT(yes)],
-[AC_DEFINE(BOOST_RE_NO_TEMPLATE_FRIEND, []) AC_MSG_RESULT(no)])
-
-
 
 AC_ARG_ENABLE(ms-windows, [--disable-ms-windows turns off native MS Windows support (when available)])
 AC_ARG_ENABLE(threads, [--disable-threads turns off multi-threading support (when available)])
@@ -362,7 +283,6 @@ AC_TRY_COMPILE(
  int i = GetVersion();
 ],
 [iswin="true"
-AC_DEFINE(BOOST_RE_PLATFORM_WINDOWS, []) 
 AC_MSG_RESULT(yes)],
 [AC_MSG_RESULT(no)
 enable_ms_windows="no"]
@@ -438,21 +358,6 @@ enable_ms_windows="no"
 fi
 
 
-if test "$iswin" != "true"; then
-
-AC_MSG_CHECKING(for MS DOS)
-AC_TRY_COMPILE(
-[ 
-#include 
-],
-[
- int i = _doserrno;
-],
-[AC_DEFINE(BOOST_RE_PLATFORM_DOS, []) AC_MSG_RESULT(yes)],
-[AC_MSG_RESULT(no)])
-
-fi
-
 
 AC_MSG_CHECKING(for bool support)
 AC_TRY_COMPILE(
@@ -570,7 +475,7 @@ fi
 
 AC_ARG_ENABLE(member-templates, [--disable-member-templates turns off member template class and function support])
 if test "$enable_member_templates" = "no"; then
-AC_DEFINE(BOOST_RE_NO_MEMBER_TEMPLATES, [])
+AC_DEFINE(BOOST_NO_MEMBER_TEMPLATES, [])
 else
 
 AC_MSG_CHECKING(for member template classes and functions)
@@ -608,7 +513,7 @@ public:
  fa = ia;
 ],
 [AC_MSG_RESULT(yes)],
-[AC_DEFINE(BOOST_RE_NO_MEMBER_TEMPLATES,[])
+[AC_DEFINE(BOOST_NO_MEMBER_TEMPLATES,[])
 AC_MSG_RESULT(no)])
 fi
 
@@ -765,100 +670,6 @@ AC_DEFINE(BOOST_RE_THREADS, [])],
 fi
 
 
-AC_ARG_ENABLE(nested-template-prefix, [--disable-nested-template-prefix turns off use of \"template\" as the nested template class access specifier.])
-if test "$enable_nested_template_prefix" = "no" || test "$enable_member_templates" = "no"; then
-AC_DEFINE(BOOST_RE_NESTED_TEMPLATE_DECL, [])
-else
-
-AC_MSG_CHECKING(for template nested class access)
-AC_TRY_COMPILE(
-[ 
-template 
-class alloc
-{
-public:
- void* allocate(int);
- void deallocate(void*);
- alloc();
- alloc(const alloc&);
- template 
- alloc(const alloc&) {}
- alloc& operator=(const alloc&);
- template 
- alloc& operator=(const alloc&)
- { return *this; }
- 
- template 
- struct rebind
- {
-  typedef alloc other;
- };
-};
-
-],
-[
- alloc ia;
- alloc da(ia);
- alloc fa;
- fa.allocate(5);
- fa = ia;
- alloc::template rebind::other da2(ia);
-],
-[
-AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_NESTED_TEMPLATE_DECL,template)
-],
-[
-AC_DEFINE(BOOST_RE_NESTED_TEMPLATE_DECL,[])
-AC_MSG_RESULT(no)
-])
-
-fi
-
-AC_MSG_CHECKING(for explicit template instantiation)
-AC_TRY_COMPILE(
-[ 
-#include "confdefs.h"
-#include 
-
-template 
-class factorial
-{
-public:
-	factorial();
-	T operator()(T);
-};
-
-template 
-factorial::factorial()
-{
-}
-
-template 
-T factorial::operator()(T t)
-{
-	T result = 1;
-	for(T i = 1; i <= t; ++i)
-	{
-		result *= i;
-	}
-	return result;
-}
-
-template class factorial;
-template class factorial;
-],
-[
-],
-[
-AC_MSG_RESULT(yes)
-],
-[
-AC_DEFINE(BOOST_RE_NO_TEMPLATE_INST,[])
-AC_MSG_RESULT(no)
-])
-
-
 AC_ARG_ENABLE(fastcall, [--disable-fastcall turns off use __fastcall and __stdcall.])
 if test "$enable_fastcall" = "no" || test "$enable_ms_windows" != "no"; then
 AC_DEFINE(BOOST_RE_CALL, [])
@@ -921,58 +732,6 @@ have_std_namespace="yes"
 [AC_MSG_RESULT(no - either STL is not present or in a non-standard namespace.)
 AC_MSG_ERROR([Sorry, you can't compile this library unless the standard library is in namespace std.])])
 
-AC_MSG_CHECKING(for )
-AC_TRY_COMPILE(
-[ 
-#include 
-
-],
-[
-],
-[AC_MSG_RESULT(yes)
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_NO_ITERATOR_H, [])
-])
-
-AC_MSG_CHECKING(for )
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
-],
-[AC_MSG_RESULT(yes)
-],
-[AC_MSG_RESULT(no)
-need_algo="yes"
-])
-
-if test "$enable_stl" != "no" && test "$need_algo" = "yes"; then
-AC_MSG_CHECKING(for )
-AC_TRY_COMPILE(
-[ 
-#include 
-
-],
-[
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_USE_ALGO, [])
-],
-[AC_MSG_RESULT(no - disabling STL support)
-AC_DEFINE(BOOST_RE_NO_STL, [])
-AC_DEFINE(BOOST_RE_NO_EXCEPTION_H, [])
-AC_DEFINE(BOOST_RE_NO_ITERATOR_H, [])
-AC_DEFINE(BOOST_RE_NO_MEMORY_H, [])
-AC_DEFINE(BOOST_RE_NO_LOCALE_H, [])
-AC_DEFINE(BOOST_RE_NO_STRING_H, [])
-enable_stl="no"
-])
-
-fi
 
 AC_MSG_CHECKING(for )
 AC_TRY_COMPILE(
@@ -983,7 +742,7 @@ AC_TRY_COMPILE(
 template 
 struct tester
 {
-	typedef typename A::BOOST_RE_NESTED_TEMPLATE_DECL rebind binder;
+	typedef typename A::template rebind binder;
 	typedef typename binder::other alloc_type;
 	alloc_type a;
 	tester(A al): a(al) {}
@@ -994,7 +753,7 @@ std::allocator d(a);
 
 typedef std::allocator alloc_type;
 
-alloc_type::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other o(a);
+alloc_type::template rebind::other o(a);
 
 tester > t(a);
 ],
@@ -1003,7 +762,7 @@ tester > t(a);
 [AC_MSG_RESULT(yes)
 ],
 [AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_NO_MEMORY_H, [])
+AC_DEFINE(BOOST_NO_STD_ALLOCATOR, [])
 ])
 
 
@@ -1112,211 +871,13 @@ AC_TRY_COMPILE(
  i = std::distance(j, k);
 ],
 [AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_DISTANCE_T_1)
 have_dist="yes"
-],
-[])
-
-if test "$enable_stl" != "no" && test "$have_dist" != "yes"; then
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
 ],
 [
- int i, *j, *k;
- std::distance(j, k, i);
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_DISTANCE_T_2)
-have_dist="yes"
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_DISTANCE_T_0)
-have_dist="yes"])
+AC_MSG_RESULT(no)
+AC_DEFINE(BOOST_NO_STD_DISTANCE)
+])
 
-fi
-
-if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
-AC_MSG_CHECKING(for standard iterator syntax)
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::iterator oi;
- std::iterator ii;
- std::iterator fi;
- std::iterator bi;
- std::iterator ri;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_ITERATOR_T_1)
-have_si="yes"
-have_oi="yes"
-have_ii="yes"
-have_fi="yes"
-have_bi="yes"
-have_ri="yes"
-],
-[])
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::iterator oi;
- std::iterator ii;
- std::iterator fi;
- std::iterator bi;
- std::iterator ri;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_ITERATOR_T_2)
-have_si="yes"
-have_oi="yes"
-have_ii="yes"
-have_fi="yes"
-have_bi="yes"
-have_ri="yes"
-],
-[AC_MSG_RESULT(no)])
-AC_DEFINE(BOOST_RE_ITERATOR_T_0)
-
-fi
-
-
-if test "$have_oi" != "yes"; then
-AC_MSG_CHECKING(for output iterator syntax)
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::output_iterator oi;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_OI_T_3)
-have_oi="yes"
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_OI_T_0)
-have_oi="yes"])
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
-AC_MSG_CHECKING(for input iterator syntax)
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::input_iterator oi;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_II_T_3)
-have_ii="yes"
-],
-[])
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::input_iterator oi;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_II_T_4)
-have_ii="yes"
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_II_T_0)
-have_ii="yes"])
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_fi" != "yes"; then
-AC_MSG_CHECKING(for forward iterator syntax)
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::forward_iterator oi;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_FI_T_3)
-have_fi="yes"
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_FI_T_0)
-have_fi="yes"])
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_bi" != "yes"; then
-AC_MSG_CHECKING(for bidirectional iterator syntax)
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::bidirectional_iterator oi;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_BI_T_)
-have_bi="yes"
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_BI_T_0)
-have_bi="yes"])
-
-fi
-
-if test "$enable_stl" != "no" && test "$have_ri" != "yes"; then
-AC_MSG_CHECKING(for random access iterator syntax)
-AC_TRY_COMPILE(
-[ 
-#include 
-#include "confdefs.h"
-
-],
-[
- std::random_access_iterator oi;
-],
-[AC_MSG_RESULT(yes)
-AC_DEFINE(BOOST_RE_RI_T_3)
-have_ri="yes"
-],
-[AC_MSG_RESULT(no)
-AC_DEFINE(BOOST_RE_RI_T_0)
-have_ri="yes"])
-
-fi
 
 if test "$enable_stl" != "no"; then
 AC_MSG_CHECKING(for output iterator assignment)
@@ -1697,5 +1258,6 @@ rm -f jm_opt.out
 
 
 
+
 
 
diff --git a/example/jgrep/jgrep.cpp b/example/jgrep/jgrep.cpp
index 4bf6eedb..25e377e2 100644
--- a/example/jgrep/jgrep.cpp
+++ b/example/jgrep/jgrep.cpp
@@ -15,7 +15,7 @@
  
  /*
   *   FILE     jgrep.cpp
-  *   VERSION  3.10
+  *   VERSION  3.11
   */
 
 #include 
diff --git a/example/jgrep/jgrep.h b/example/jgrep/jgrep.h
index ea52f45a..db0cb772 100644
--- a/example/jgrep/jgrep.h
+++ b/example/jgrep/jgrep.h
@@ -15,7 +15,7 @@
  
  /*
   *   FILE     jgrep.h
-  *   VERSION  3.10
+  *   VERSION  3.11
   */
 
 #ifndef _JGREP_H
diff --git a/example/jgrep/main.cpp b/example/jgrep/main.cpp
index 0d4b0581..5bf335aa 100644
--- a/example/jgrep/main.cpp
+++ b/example/jgrep/main.cpp
@@ -15,7 +15,7 @@
  
  /*
   *   FILE     main.cpp
-  *   VERSION  3.10
+  *   VERSION  3.11
   */
 
 
diff --git a/faq.htm b/faq.htm
index fe2d1eb7..c8c3a0e9 100644
--- a/faq.htm
+++ b/faq.htm
@@ -13,7 +13,7 @@
 

C++ Boost

Regex++, FAQ.

-

(version 3.10, 18 April 2000)

+

(version 3.11, 18 April 2000)

Copyright (c) 1998-2000
 Dr John Maddock
 
diff --git a/format_string.htm b/format_string.htm
index 90710c2e..d2f18c05 100644
--- a/format_string.htm
+++ b/format_string.htm
@@ -20,7 +20,7 @@
 

Regex++, Format String Reference.

-(version 3.10, 18 April 2000) +(version 3.11, 18 April 2000)
Copyright (c) 1998-2000
 Dr John Maddock
diff --git a/hl_ref.htm b/hl_ref.htm
index eb31ff52..af24c64a 100644
--- a/hl_ref.htm
+++ b/hl_ref.htm
@@ -20,7 +20,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
         
         

Regex++, RegEx Class Reference.

-

(version 3.10, 18 April 2000)

+

(version 3.11, 18 April 2000)

Copyright (c) 1998-2000
 Dr John Maddock
 
diff --git a/include/boost/cregex.hpp b/include/boost/cregex.hpp
index 6a41fd28..b549d799 100644
--- a/include/boost/cregex.hpp
+++ b/include/boost/cregex.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         cregex.cpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares POSIX API functions
   *                + boost::RegEx high level wrapper.
   */
diff --git a/include/boost/regex.h b/include/boost/regex.h
index c438542b..0970ffb6 100644
--- a/include/boost/regex.h
+++ b/include/boost/regex.h
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex.h
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares POSIX API functions
   */
 
diff --git a/include/boost/regex.hpp b/include/boost/regex.hpp
index 2789c12d..2221a1dd 100644
--- a/include/boost/regex.hpp
+++ b/include/boost/regex.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex.cpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares boost::reg_expression<> and associated
   *                functions and classes. This header is the main
   *                entry point for the template regex code.
@@ -105,9 +105,9 @@ public:
    {
       return static_cast*>(this)->translate(c, true);
    }
-   jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const
+   boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const
    {
-      jm_uintfast32_t result = static_cast*>(this)->lookup_classname(first, last);
+      boost::uint_fast32_t result = static_cast*>(this)->lookup_classname(first, last);
       if((result & base_type::char_class_upper) == base_type::char_class_upper)
          result |= base_type::char_class_alpha;
       return result;
@@ -242,7 +242,7 @@ struct re_literal : public re_syntax_base
 struct re_set_long : public re_syntax_base
 {
    unsigned int csingles, cranges, cequivalents;
-   jm_uintfast32_t cclasses;
+   boost::uint_fast32_t cclasses;
    bool isnot;
 };
 
@@ -523,7 +523,7 @@ public:
       set_expression(first, last, f | regbase::use_except);
       return *this;
    }
-#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
+#ifndef BOOST_NO_MEMBER_TEMPLATES
 
    template 
    unsigned int BOOST_RE_CALL set_expression(const std::basic_string& p, flag_type f = regbase::normal)
@@ -671,8 +671,8 @@ private:
    void BOOST_RE_CALL fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces);
    void BOOST_RE_CALL move_offsets(re_detail::re_syntax_base* j, unsigned size);
    re_detail::re_syntax_base* BOOST_RE_CALL compile_set(const charT*& first, const charT* last);
-   re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_narrow_type&);
-   re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_wide_type&);
+   re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_narrow_type&);
+   re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_wide_type&);
    re_detail::re_syntax_base* BOOST_RE_CALL compile_set_simple(re_detail::re_syntax_base* dat, unsigned long cls, bool isnot = false);
    unsigned int BOOST_RE_CALL parse_inner_set(const charT*& first, const charT* last);
 
@@ -740,8 +740,7 @@ struct sub_match
    operator std::basic_string ()const
    {
       std::basic_string result;
-      unsigned len;
-      BOOST_RE_DISTANCE((iterator)first, (iterator)second, len);
+      unsigned len = boost::re_detail::distance((iterator)first, (iterator)second);
       result.reserve(len);
       iterator i = first;
       while(i != second)
@@ -778,8 +777,7 @@ struct sub_match
 
    difference_type BOOST_RE_CALL length()const
    {
-      difference_type n;
-      BOOST_RE_DISTANCE((iterator)first, (iterator)second, n);
+      difference_type n = boost::re_detail::distance((iterator)first, (iterator)second);
       return n;
    }
 };
@@ -846,7 +844,7 @@ class match_results_base
 {
 public:
    typedef Allocator                                                 alloc_type;
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator)  iterator_alloc;
+   typedef typename boost::re_detail::rebind_allocator::type  iterator_alloc;
    typedef typename iterator_alloc::size_type                        size_type;
 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
    typedef typename std::iterator_traits::difference_type  difference_type;
@@ -859,7 +857,7 @@ public:
    typedef iterator                                                  iterator_type;
 
 protected:
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) c_alloc;
+   typedef typename boost::re_detail::rebind_allocator::type c_alloc;
    
    struct c_reference : public c_alloc
    {
@@ -929,8 +927,7 @@ public:
       const sub_match& m = (*this)[sub];
       if(m.matched == false)
          return 0;
-      difference_type n;
-      BOOST_RE_DISTANCE((iterator)m.first, (iterator)m.second, n);
+      difference_type n = boost::re_detail::distance((iterator)m.first, (iterator)m.second);
       return n;
    }
 
@@ -950,8 +947,7 @@ public:
       const sub_match& s = (*this)[sub];
       if(s.matched == false)
          return -1;
-      difference_type n;
-      BOOST_RE_DISTANCE((iterator)ref->base, (iterator)s.first, n);
+      difference_type n = boost::re_detail::distance((iterator)(ref->base), (iterator)(s.first));
       return n;
    }
 
@@ -1270,13 +1266,13 @@ void BOOST_RE_CALL match_results_base::maybe_assign(const m
    {
       //
       // leftmost takes priority over longest:
-      BOOST_RE_DISTANCE(base, p1->first, base1);
-      BOOST_RE_DISTANCE(base, p2->first, base2);
+      base1 = boost::re_detail::distance(base, p1->first);
+      base2 = boost::re_detail::distance(base, p2->first);
       if(base1 < base2) return;
       if(base2 < base1) break;
 
-      BOOST_RE_DISTANCE(p1->first, p1->second, len1);
-      BOOST_RE_DISTANCE(p2->first, p2->second, len2);
+      len1 = boost::re_detail::distance(p1->first, p1->second);
+      len2 = boost::re_detail::distance(p2->first, p2->second);
       if((len1 != len2) || ((p1->matched == false) && (p2->matched == true)))
          break;
       if((p1->matched == true) && (p2->matched == false))
diff --git a/include/boost/regex/detail/fileiter.hpp b/include/boost/regex/detail/fileiter.hpp
index 352cdfea..5da3cbed 100644
--- a/include/boost/regex/detail/fileiter.hpp
+++ b/include/boost/regex/detail/fileiter.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         fileiter.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares various platform independent file and
   *                directory iterators, plus binary file input in
   *                the form of class map_file.
@@ -196,7 +196,7 @@ public:
    friend class mapfile_iterator;
 };
 
-class BOOST_RE_IX_DECL mapfile_iterator : public BOOST_RE_RA_ITERATOR(char, long)
+class BOOST_RE_IX_DECL mapfile_iterator
 {
    typedef mapfile::pointer internal_pointer;
    internal_pointer* node;
@@ -325,7 +325,7 @@ struct file_iterator_ref
 };
 
 
-class BOOST_RE_IX_DECL file_iterator : public BOOST_RE_INPUT_ITERATOR(const char*, std::ptrdiff_t)
+class BOOST_RE_IX_DECL file_iterator 
 {
    char* _root;
    char* _path;
@@ -333,6 +333,12 @@ class BOOST_RE_IX_DECL file_iterator : public BOOST_RE_INPUT_ITERATOR(const char
    file_iterator_ref* ref;
 
 public:
+   typedef std::ptrdiff_t            difference_type;
+   typedef const char*               value_type;
+   typedef const char**              pointer;
+   typedef const char*&              reference;
+   typedef std::input_iterator_tag   category;
+
    file_iterator();
    file_iterator(const char* wild);
    ~file_iterator();
@@ -366,7 +372,7 @@ inline bool operator < (const file_iterator&, const file_iterator&)
 }
 
 
-class BOOST_RE_IX_DECL directory_iterator : public BOOST_RE_INPUT_ITERATOR(const char*, std::ptrdiff_t)
+class BOOST_RE_IX_DECL directory_iterator
 {
    char* _root;
    char* _path;
@@ -374,6 +380,12 @@ class BOOST_RE_IX_DECL directory_iterator : public BOOST_RE_INPUT_ITERATOR(const
    file_iterator_ref* ref;
 
 public:
+   typedef std::ptrdiff_t            difference_type;
+   typedef const char*               value_type;
+   typedef const char**              pointer;
+   typedef const char*&              reference;
+   typedef std::input_iterator_tag   category;
+
    directory_iterator();
    directory_iterator(const char* wild);
    ~directory_iterator();
diff --git a/include/boost/regex/detail/regex_compile.hpp b/include/boost/regex/detail/regex_compile.hpp
index 2a871733..ad45ab54 100644
--- a/include/boost/regex/detail/regex_compile.hpp
+++ b/include/boost/regex/detail/regex_compile.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_compile.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares reg_expression<> member functions.  This is
   *                an internal header file, do not include directly.
   */
@@ -644,7 +644,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression singles(64, data.allocator());
    re_detail::jstack ranges(64, data.allocator());
-   re_detail::jstack classes(64, data.allocator());
+   re_detail::jstack classes(64, data.allocator());
    re_detail::jstack equivalents(64, data.allocator());
    classes.push(cls);
    if(dat)
@@ -660,7 +660,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression singles(64, data.allocator());
    re_detail::jstack ranges(64, data.allocator());
-   re_detail::jstack classes(64, data.allocator());
+   re_detail::jstack classes(64, data.allocator());
    re_detail::jstack equivalents(64, data.allocator());
    bool has_digraphs = false;
    jm_assert(traits_inst.syntax_type((traits_size_type)(traits_uchar_type)*first) == traits_type::syntax_open_set);
@@ -719,7 +719,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression
-re_detail::re_syntax_base* BOOST_RE_CALL reg_expression::compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_wide_type&)
+re_detail::re_syntax_base* BOOST_RE_CALL reg_expression::compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_wide_type&)
 {
    size_type base = data.size();
    data.extend(sizeof(re_detail::re_set_long));
    unsigned int csingles = 0;
    unsigned int cranges = 0;
-   jm_uintfast32_t cclasses = 0;
+   boost::uint_fast32_t cclasses = 0;
    unsigned int cequivalents = 0;
    bool nocollate_state = flags() & regbase::nocollate;
 
@@ -1011,7 +1011,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression
-re_detail::re_syntax_base* BOOST_RE_CALL reg_expression::compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_narrow_type&)
+re_detail::re_syntax_base* BOOST_RE_CALL reg_expression::compile_set_aux(re_detail::jstack& singles, re_detail::jstack& ranges, re_detail::jstack& classes, re_detail::jstack& equivalents, bool isnot, const re_detail::_narrow_type&)
 {
    re_detail::re_set* dat = (re_detail::re_set*)data.extend(sizeof(re_detail::re_set));
    std::memset(dat, 0, sizeof(re_detail::re_set));
@@ -1084,7 +1084,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression
 void BOOST_RE_CALL reg_expression::fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces)
 {
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(bool, Allocator) b_alloc;
+   typedef typename boost::re_detail::rebind_allocator::type b_alloc;
    
    register unsigned char* base = (unsigned char*)b;
    register re_detail::re_syntax_base* ptr = b;
diff --git a/include/boost/regex/detail/regex_config.hpp b/include/boost/regex/detail/regex_config.hpp
index 00a6c9f7..52e13247 100644
--- a/include/boost/regex/detail/regex_config.hpp
+++ b/include/boost/regex/detail/regex_config.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_config.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: auto-configure options for regular expression code.
   */
 
@@ -50,6 +50,10 @@ full list of macros and their usage.
 #include 
 #include 
 #include 
+#ifdef __CYGWIN__
+#include 
+#endif
+#include 
 #else
 //
 // C build,
@@ -85,23 +89,17 @@ full list of macros and their usage.
    #if __BORLANDC__ < 0x500
       #define BOOST_RE_NO_NAMESPACES
       #define BOOST_RE_NO_BOOL
-      #define BOOST_RE_NO_MUTABLE
    #endif
 
    // versions prior to 0x530 not supported:
    #if __BORLANDC__ < 0x540
-      #define BOOST_RE_NO_MEMBER_TEMPLATES
       // inline contructors exhibit strange behaviour
       // under Builder 3 and C++ 5.x when throwing exceptions
       #define INLINE_EXCEPTION_BUG
-      #define BOOST_RE_NESTED_TEMPLATE_DECL
       #define BOOST_RE_NO_PARTIAL_FUNC_SPEC
       #define BOOST_RE_NO_STRING_DEF_ARGS
       #define BOOST_RE_NO_TYPEINFO    // bad_cast etc not in namespace std.
    #endif
-   //
-   // Builder 4 seems to have broken template friend support:
-   #define BOOST_RE_NO_TEMPLATE_FRIEND
 
    #if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
       // problems with std::basic_string and dll RTL:
@@ -122,12 +120,6 @@ full list of macros and their usage.
       #error exception handling support required
    #endif
 
-   #ifdef _Windows
-      #define BOOST_RE_PLATFORM_WINDOWS
-   #else
-      #define BOOST_RE_PLATFORM_DOS
-   #endif
-
    #ifndef __WIN32__
       #define BOOST_RE_CALL
       #define BOOST_RE_CCALL
@@ -136,8 +128,6 @@ full list of macros and their usage.
       #define BOOST_RE_CCALL __stdcall
    #endif
 
-   #define BOOST_RE_INT64t __int64
-   #define BOOST_RE_IMM64(val) val##i64
    #define BOOST_RE_NO_CAT
    // broken wide character support:
    #define BOOST_RE_NO_SWPRINTF
@@ -180,15 +170,12 @@ full list of macros and their usage.
       #define BOOST_RE_NO_NAMESPACES
       #define BOOST_RE_NO_DEFAULT_PARAM
       #define BOOST_RE_NO_BOOL
-      #define BOOST_RE_NO_MUTABLE
       #define BOOST_RE_NO_WCSTRING
       #define BOOST_RE_NO_LOCALE_H
       #define BOOST_RE_NO_TEMPLATE_RETURNS
-      #define BOOST_RE_NO_INT64
    #endif
 
    #if BOOST_MSVC < 1200
-      #define BOOST_RE_NESTED_TEMPLATE_DECL
       #define BOOST_RE_NO_STRING_DEF_ARGS
    #endif
 
@@ -196,16 +183,11 @@ full list of macros and their usage.
       #error exception handling support required
    #endif
 
-   #define BOOST_RE_PLATFORM_WINDOWS
    //
    // no support for nested template classes yet....
    // although this part of VC6 is badly documented
-   #define BOOST_RE_NO_MEMBER_TEMPLATES
-   #define BOOST_RE_INT64t __int64
-   #define BOOST_RE_IMM64(val) val##i64
    #define BOOST_RE_NO_CAT
    #define BOOST_RE_NO_PARTIAL_FUNC_SPEC
-   #define BOOST_RE_NO_TEMPLATE_FRIEND
    #define BOOST_RE_NO_SWPRINTF
 
    #ifdef _MT
@@ -238,13 +220,8 @@ full list of macros and their usage.
 #ifdef __GNUC__
    #if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 91))
       #define BOOST_RE_NO_NAMESPACES
-      #define BOOST_RE_NO_MUTABLE
-      #define BOOST_RE_NO_MEMBER_TEMPLATES
       #define BOOST_RE_NO_PARTIAL_FUNC_SPEC
-      #define BOOST_RE_NO_TEMPLATE_FRIEND
    #endif
-   #define BOOST_RE_INT64t long long
-   #define BOOST_RE_IMM64(val) val##LL
 
    #ifdef _WIN32
       /* there seems to be a problem with  in gcc */
@@ -254,7 +231,6 @@ full list of macros and their usage.
       #define BOOST_RE_NO_TEMPLATE_SWITCH_MERGE
    #endif
    #define BOOST_RE_NO_CAT
-   #define BOOST_RE_NESTED_TEMPLATE_DECL
    #define BOOST_RE_NO_SWPRINTF
    #include 
    #ifdef __BASTRING__
@@ -278,15 +254,9 @@ full list of macros and their usage.
 #ifdef __SUNPRO_CC
    #if (__SUNPRO_CC < 0x500)
       #define BOOST_RE_NO_NAMESPACES
-      #define BOOST_RE_NO_MUTABLE
-      #define BOOST_RE_NO_MEMBER_TEMPLATES
       #define BOOST_RE_OLD_IOSTREAM
    #endif
-   #define BOOST_RE_INT64t long long
-   #define BOOST_RE_IMM64(val) val##LL
-   #define BOOST_RE_NESTED_TEMPLATE_DECL
    #define BOOST_RE_NO_SWPRINTF
-   #define BOOST_RE_NO_TEMPLATE_FRIEND
    #define BOOST_RE_NO_LOCALE_H
 #endif
 
@@ -296,20 +266,13 @@ full list of macros and their usage.
 #   if (__HP_aCC < 31400)
    // non-conformant aCC:
    #define BOOST_RE_NO_NAMESPACES
-   #define BOOST_RE_NO_MUTABLE
    #define BOOST_RE_OLD_IOSTREAM
-   #define BOOST_RE_NESTED_TEMPLATE_DECL
-   #define BOOST_RE_NO_TEMPLATE_FRIEND
+   #define BOOST_NO_STD_ALLOCATOR
 #else
    #if !defined(_NAMESPACE_STD)
       #define BOOST_RE_OLD_IOSTREAM
    #endif
-   #define BOOST_RE_NESTED_TEMPLATE_DECL template
 #endif
-   #define BOOST_RE_NO_MEMBER_TEMPLATES
-   #define BOOST_RE_NO_MEMORY_H
-   #define BOOST_RE_INT64t long long
-   #define BOOST_RE_IMM64(val) val##LL
    #define BOOST_RE_NO_SWPRINTF
    #define BOOST_RE_NO_CAT
 #endif
@@ -362,20 +325,6 @@ full list of macros and their usage.
 #define BOOST_RE_MAYBE_ACCESS_SPEC 
 #endif
 
-#if !defined(BOOST_RE_INT64t) || !defined(BOOST_RE_IMM64)
-#define BOOST_RE_NO_INT64
-#endif
-
-#ifndef BOOST_RE_INT32_LONG
-typedef unsigned int jm_uintfast32_t;
-#else
-typedef unsigned long jm_uintfast32_t;
-#endif
-
-#ifndef BOOST_RE_NESTED_TEMPLATE_DECL
-#define BOOST_RE_NESTED_TEMPLATE_DECL template
-#endif
-
 #ifndef BOOST_RE_IX_DECL
 #define BOOST_RE_IX_DECL
 #endif
@@ -432,7 +381,7 @@ typedef unsigned long jm_uintfast32_t;
       	#define BOOST_RE_NO_WCSTRING
       #endif
       #if !defined(__STL_MEMBER_TEMPLATE_CLASSES) ||  !defined(__STL_MEMBER_TEMPLATES)
-         #define BOOST_RE_NO_MEMBER_TEMPLATES
+         #define BOOST_NO_MEMBER_TEMPLATES
       #endif
       #define BOOST_RE_NO_TYPEINFO
 
@@ -449,30 +398,14 @@ typedef unsigned long jm_uintfast32_t;
 
       #define BOOST_RE_ALGO_INCLUDED
 
-      #define BOOST_RE_DISTANCE(i, j, n) do { n = 0; std::distance(i, j, n); } while(false)
-      #define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
-      #define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator
-      #define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator
-      #define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator
-      #define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator
+      #if !defined( __STL_CLASS_PARTIAL_SPECIALIZATION) || !defined(__SGI_STL_PORT)
+         #define BOOST_NO_STD_DISTANCE
+      #endif
 
       #if defined(__STL_USE_STD_ALLOCATORS) || (defined(__SGI_STL_PORT ) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(__STL_MEMBER_TEMPLATES))
-
          /* new style allocator's with nested template classes */
-         #undef BOOST_RE_NO_MEMBER_TEMPLATES
-         #define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other(inst)
-         #define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other
-         #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator )
-         #define BOOST_RE_DEF_ALLOC(x) std::allocator
-
       #else  /* __STL_USE_STD_ALLOCATORS */
-            #define BOOST_RE_OLD_ALLOCATORS
-            #define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder(inst)
-            #define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder
-            #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
-            #define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
-            #define BOOST_RE_NEED_BINDER
-            #define BOOST_RE_NEED_ALLOC
+            #define BOOST_NO_STD_ALLOCATOR
       #endif /* __STL_USE_STD_ALLOCATORS */
 
       #define BOOST_RE_STL_DONE
@@ -496,7 +429,7 @@ typedef unsigned long jm_uintfast32_t;
       #endif
 
       #if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(RWSTD_NO_MEM_CLASS_TEMPLATES)
-         #define BOOST_RE_NO_MEMBER_TEMPLATES
+         #define BOOST_NO_MEMBER_TEMPLATES
       #endif
       #ifdef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
          #define BOOST_RE_NO_TEMPLATE_RETURNS
@@ -506,10 +439,6 @@ typedef unsigned long jm_uintfast32_t;
          #error exception handling support required
       #endif
 
-      #ifdef RWSTD_NO_MUTABLE
-         #define BOOST_RE_NO_MUTABLE
-      #endif
-
       #ifdef RWSTD_NO_DEFAULT_TEMPLATES
          #define BOOST_RE_NO_DEFAULT_PARAM
          #define BOOST_RE_NO_TRICKY_DEFAULT_PARAM
@@ -525,57 +454,20 @@ typedef unsigned long jm_uintfast32_t;
          #define BOOST_RE_NO_BOOL
       #endif
 
-      #if BOOST_RWSTD_VER > 0x020000
-         #ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
-          #define BOOST_RE_DISTANCE(i, j, n) do { n = 0; std::distance(i, j, n); } while(false)
-         #else 
-          #define BOOST_RE_DISTANCE(i, j, n) (n = std::distance(i, j))
-         #endif
-         #define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator
-         #define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator
-         #define BOOST_RE_FWD_ITERATOR(T, D) std::iterator
-         #define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator
-         #define BOOST_RE_RA_ITERATOR(T, D) std::iterator
-      #else 
-         #define BOOST_RE_DISTANCE(i, j, n) std::distance(i, j, n)do { n = 0; std::distance(i, j, n); } while(false)
-         #define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
-         #if BOOST_RWSTD_VER >= 0x0200
-            #define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator
-         #else
-            #define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator
-         #endif
-         #define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator
-         #define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator
-         #define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator
+      #if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
+          #define BOOST_NO_STD_DISTANCE
       #endif
 
       #include 
 
-      #if defined(_RWSTD_ALLOCATOR) && !defined(BOOST_RE_NO_MEMORY_H) && !defined(BOOST_RE_NO_MEMBER_TEMPLATES)
-
-         /* new style allocator */
-
-         #define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other(inst)
-         #define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other
-         #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator )
-         #define BOOST_RE_DEF_ALLOC(x)  std::allocator
-
-      #else
+      #if !defined(_RWSTD_ALLOCATOR)
          /*
          // old style allocator
          // this varies a great deal between versions, and there is no way
          // that I can tell of differentiating between them, so use our
          // own default allocator...
          */
-         #define BOOST_RE_OLD_ALLOCATORS
-         #define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder(inst)
-         #define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder
-         #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
-         #define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
-
-         #define BOOST_RE_NEED_BINDER
-         #define BOOST_RE_NEED_ALLOC
-
+         #define BOOST_NO_STD_ALLOCATOR
       #endif
 
       #define BOOST_RE_STL_DONE
@@ -583,57 +475,14 @@ typedef unsigned long jm_uintfast32_t;
          #define BOOST_RE_NO_OI_ASSIGN
       #endif
 
-   #elif defined (ITERATOR_H)
-
-      /* HP STL */
-
-      #define BOOST_RE_NO_LOCALE_H
-
-      #include 
-      #define BOOST_RE_ALGO_INCLUDED
-
-      #define BOOST_RE_DISTANCE(i, j, n) std::distance(i, j, n)do { n = 0; std::distance(i, j, n); } while(false)
-      #define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
-      #define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator
-      #define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator
-      #define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator
-      #define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator
-
-      /* old style allocator */
-      #define BOOST_RE_OLD_ALLOCATORS
-      #define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder(inst)
-      #define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder
-      #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
-      #define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
-
-      #define BOOST_RE_NEED_BINDER
-      #define BOOST_RE_NEED_ALLOC
-      #define BOOST_RE_NO_NOT_EQUAL
-
-      #define BOOST_RE_STL_DONE
-
    #elif (defined(BOOST_MSVC) || defined(__ICL)) && (defined(_YVALS) || defined(_CPPLIB_VER))
 
       /* VC6 or Intel C++, with Dinkum STL */
       #define BOOST_RE_NO_OI_ASSIGN
 
-      #define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j)
-      #define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_FWD_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_RA_ITERATOR(T, D) std::iterator
-
       /* MS's allocators are rather ambiguous about their properties
       at least as far as MSDN is concerned, so play safe: */
-      #define BOOST_RE_OLD_ALLOCATORS
-      #define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder(inst)
-      #define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder
-      #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
-      #define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
-
-      #define BOOST_RE_NEED_BINDER
-      #define BOOST_RE_NEED_ALLOC
+      #define BOOST_NO_STD_ALLOCATOR
 
       #define BOOST_RE_STL_DONE
       #ifndef _CPPLIB_VER
@@ -650,59 +499,12 @@ typedef unsigned long jm_uintfast32_t;
       /* unknown STL version
        try the defaults: */
     
-      // dwa 10/05/00 Why were we assuming a broken distance in this case?
-      #define BOOST_RE_DISTANCE(i, j, n)  (n = std::distance(i, j))
-      /* these may be suspect for older libraries */
-      #define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_FWD_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator
-      #define BOOST_RE_RA_ITERATOR(T, D) std::iterator
-
    #endif  /*  config */
 
-#else   /* no  at all */
-
-   #define BOOST_RE_DISTANCE(i, j, n) (n = j - i)
-   #define BOOST_RE_OUTPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-   #define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-   #define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-   #define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-   #define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-
-
 #endif
 
 /* now do allocator if not already done */
 
-#ifndef BOOST_RE_STL_DONE
-
-   #ifdef BOOST_RE_NO_MEMORY_H
-
-      /* old style allocator */
-      
-      #define BOOST_RE_OLD_ALLOCATORS
-
-      #define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder(inst)
-      #define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder
-      #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
-      #define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
-
-      #define BOOST_RE_NEED_BINDER
-      #define BOOST_RE_NEED_ALLOC
-
-   #else
-
-      /* new style allocator's with nested template classes */
-
-      #define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other(inst)
-      #define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other
-      #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator )
-      #define BOOST_RE_DEF_ALLOC(x) std::allocator
-
-   #endif
-
-#endif
 #endif // BOOST_RE_AUTO_CONFIGURE
 
 
@@ -738,12 +540,6 @@ typedef unsigned long jm_uintfast32_t;
 
 /* compiler configuration goes here: */
 
-#ifdef BOOST_RE_NO_MUTABLE
-   #define BOOST_RE_MUTABLE
-#else
-   #define BOOST_RE_MUTABLE mutable
-#endif
-
 #if defined( BOOST_RE_NO_BOOL) && !defined(bool)
    #define bool int
    #define true 1
@@ -766,6 +562,9 @@ typedef unsigned long jm_uintfast32_t;
 #define BOOST_RE_NO_STRING_DEF_ARGS  
 #endif
 
+#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_NO_STD_ALLOCATOR)
+#define BOOST_NO_STD_ALLOCATOR
+#endif
 
 
 /* add our class def's if they are needed: */
@@ -834,7 +633,7 @@ public:
 
    const Allocator& BOOST_RE_CALL instance()const { return *this; }
 
-#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
+#ifndef BOOST_NO_MEMBER_TEMPLATES
 
    template 
    struct rebind
@@ -887,7 +686,7 @@ public:
       ::operator delete(p);
    }
 
-#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
+#ifndef BOOST_NO_MEMBER_TEMPLATES
    template 
    struct rebind
    {
@@ -935,15 +734,39 @@ inline bool BOOST_RE_CALL boolify(I val)
  #endif
 #endif
 
+template 
+struct rebind_allocator
+{
+#ifdef BOOST_NO_STD_ALLOCATOR
+   typedef re_alloc_binder type;
+#else
+   typedef typename A::template rebind binder;
+   typedef typename binder::other type;
+#endif
+};
+
+#ifdef BOOST_NO_STD_DISTANCE
+template 
+std::ptrdiff_t distance(const T& x, const T& y)
+{ return y - x; }
+#else
+using std::distance;
+#endif
+
 } // namespace re_detail
-#ifdef BOOST_RE_NEED_BINDER
-using re_detail::re_alloc_binder;
-#endif
-#ifdef BOOST_RE_NEED_ALLOC
-using re_detail::jm_def_alloc;
-#endif
+
 } // namespace boost
 
+#ifdef BOOST_NO_STD_ALLOCATOR
+#define BOOST_RE_DEF_ALLOC(T) boost::re_detail::jm_def_alloc
+#define BOOST_RE_DEF_ALLOC_PARAM(T) BOOST_RE_DEFAULT_PARAM(boost::re_detail::jm_def_alloc)
+#else
+#include 
+#define BOOST_RE_DEF_ALLOC(T) std::allocator
+#define BOOST_RE_DEF_ALLOC_PARAM(T) BOOST_RE_TRICKY_DEFAULT_PARAM(std::allocator)
+#endif
+
+
 #ifdef __GNUC__
 #define INLINE_EXCEPTION_BUG
 #endif
@@ -1022,11 +845,6 @@ public:
 
    #ifdef __BORLANDC__
       #pragma message "macro allocator: " BOOST_RE_DEF_ALLOC_PARAM(wchar_t)
-      #pragma message "macro jm_input_iterator: " BOOST_RE_INPUT_ITERATOR(char, std::ptrdiff_t)
-      #pragma message "macro jm_output_iterator: " BOOST_RE_OUTPUT_ITERATOR(char, std::ptrdiff_t)
-      #pragma message "macro jm_fwd_iterator: " BOOST_RE_FWD_ITERATOR(char, std::ptrdiff_t)
-      #pragma message "macro jm_bidi_iterator: " BOOST_RE_BIDI_ITERATOR(char, std::ptrdiff_t)
-      #pragma message "macro jm_ra_iterator: " BOOST_RE_RA_ITERATOR(char, std::ptrdiff_t)
       #ifdef BOOST_RE_LOCALE_CPP
          #pragma message "locale support enabled"
       #endif
@@ -1275,5 +1093,6 @@ namespace std{
 
 
 
+
 
 
diff --git a/include/boost/regex/detail/regex_cstring.hpp b/include/boost/regex/detail/regex_cstring.hpp
index ac729da9..0307a5b0 100644
--- a/include/boost/regex/detail/regex_cstring.hpp
+++ b/include/boost/regex/detail/regex_cstring.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_cstring.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: This is an internal header file, do not include directly.
   *                String support and helper functions, for regular
   *                expression library.
diff --git a/include/boost/regex/detail/regex_format.hpp b/include/boost/regex/detail/regex_format.hpp
index 7e8787aa..453853b4 100644
--- a/include/boost/regex/detail/regex_format.hpp
+++ b/include/boost/regex/detail/regex_format.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_format.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Provides formatting output routines for search and replace
   *                operations.  Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
diff --git a/include/boost/regex/detail/regex_kmp.hpp b/include/boost/regex/detail/regex_kmp.hpp
index 5706d2ad..11ac3b02 100644
--- a/include/boost/regex/detail/regex_kmp.hpp
+++ b/include/boost/regex/detail/regex_kmp.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_kmp.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Provides Knuth Morris Pratt search operations.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
@@ -53,17 +53,17 @@ struct kmp_info
 template 
 void kmp_free(kmp_info* pinfo, const Allocator& a)
 {
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) atype;
+   typedef typename boost::re_detail::rebind_allocator::type atype;
    atype(a).deallocate((char*)pinfo, pinfo->size);
 }
 
 template 
 kmp_info* kmp_compile(iterator first, iterator last, charT, Trans translate, const Allocator& a) 
 {    
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) atype;
+   typedef typename boost::re_detail::rebind_allocator::type atype;
    int i, j, m;
    i = 0;
-   BOOST_RE_DISTANCE(first, last, m);
+   m = boost::re_detail::distance(first, last);
    ++m;
    unsigned int size = sizeof(kmp_info) + sizeof(int)*m + sizeof(charT)*m;
    --m;
diff --git a/include/boost/regex/detail/regex_library_include.hpp b/include/boost/regex/detail/regex_library_include.hpp
index ca2c117e..24e9dde4 100644
--- a/include/boost/regex/detail/regex_library_include.hpp
+++ b/include/boost/regex/detail/regex_library_include.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_libary_include.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
diff --git a/include/boost/regex/detail/regex_match.hpp b/include/boost/regex/detail/regex_match.hpp
index cee4df33..aceb1ac3 100644
--- a/include/boost/regex/detail/regex_match.hpp
+++ b/include/boost/regex/detail/regex_match.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_match.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Regular expression matching algorithms.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
@@ -150,8 +150,8 @@ template 
 class _priv_match_data
 {
 public:
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(int, Allocator) i_alloc;
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator) it_alloc;
+   typedef typename boost::re_detail::rebind_allocator::type i_alloc;
+   typedef typename boost::re_detail::rebind_allocator::type it_alloc;
 
    match_results_base temp_match;
    // failure stacks:
@@ -209,12 +209,10 @@ void _priv_match_data::free()
 {
    if(caccumulators)
    {
-      //REBIND_INSTANCE(int, Allocator, temp_match.allocator()).deallocate(accumulators, caccumulators);
       i_alloc temp1(temp_match.allocator());
       temp1.deallocate(accumulators, caccumulators);
       for(unsigned i = 0; i < caccumulators; ++i)
          jm_destroy(loop_starts + i);
-      //REBIND_INSTANCE(iterator, Allocator, temp_match.allocator()).deallocate(loop_starts, caccumulators);
       it_alloc temp2(temp_match.allocator());
       temp2.deallocate(loop_starts, caccumulators);
    }
diff --git a/include/boost/regex/detail/regex_options.hpp b/include/boost/regex/detail/regex_options.hpp
index 754ace2c..d3573a68 100644
--- a/include/boost/regex/detail/regex_options.hpp
+++ b/include/boost/regex/detail/regex_options.hpp
@@ -10,21 +10,6 @@
 /* BOOST_NO_STDC_NAMESPACE         C library not in namespace std */
 /* #define BOOST_NO_STDC_NAMESPACE */
 
-/* BOOST_RE_NO_MUTABLE             Disables use of mutable keyword. */
-/* #define BOOST_RE_NO_MUTABLE */
-
-/* BOOST_RE_INT32_LONG            If 32-bit integers are long */
-/* #define BOOST_RE_INT32_LONG */
-
-/* BOOST_RE_NO_TEMPLATE_FRIEND     If template friend declarations are not supported */
-/* #define BOOST_RE_NO_TEMPLATE_FRIEND */
-
-/* BOOST_RE_PLATFORM_WINDOWS       Platform is MS Windows. */
-/* #define BOOST_RE_PLATFORM_WINDOWS */
-
-/* BOOST_RE_PLATFORM_DOS           Platform if MSDOS. */
-/* #define BOOST_RE_PLATFORM_DOS */
-
 /* BOOST_RE_PLATFORM_W32           Platform is MS Win32 */
 /* #define BOOST_RE_PLATFORM_W32 */
 
@@ -49,8 +34,8 @@
 /* BOOST_RE_NO_WSPRINTF            If there is no wsprintf available. */
 /* #define BOOST_RE_NO_WSPRINTF */
 
-/* BOOST_RE_NO_MEMBER_TEMPLATES    If member function templates or nested template classes are not allowed. */
-/* #define BOOST_RE_NO_MEMBER_TEMPLATES */
+/* BOOST_NO_MEMBER_TEMPLATES    If member function templates or nested template classes are not allowed. */
+/* #define BOOST_NO_MEMBER_TEMPLATES */
 
 /* BOOST_RE_NO_TEMPLATE_RETURNS    If template functions based on return type are not supported. */
 /* #define BOOST_RE_NO_TEMPLATE_RETURNS */
@@ -58,25 +43,6 @@
 /* BOOST_RE_NO_PARTIAL_FUNC_SPEC   If partial template function specialisation is not supported */
 /* #define BOOST_RE_NO_PARTIAL_FUNC_SPEC */
 
-/* BOOST_RE_NO_INT64               If 64bit integers are not supported. */
-/* BOOST_RE_INT64t                 The type of a 64-bit signed integer if available. */
-/* BOOST_RE_IMM64(val)             Declares a 64-bit immediate value by appending any
-                             necessary suffix to val. */
-/* BOOST_RE_INT64_T                0 = NA
-                             1 = short
-                      2 = int
-                      3 = long
-                      4 = int64_t
-                      5 = long long
-                      6 = __int64 */
-/* #define BOOST_RE_INT64_T_0 */
-/* #define BOOST_RE_INT64_T_1 */
-/* #define BOOST_RE_INT64_T_2 */
-/* #define BOOST_RE_INT64_T_3 */
-/* #define BOOST_RE_INT64_T_4 */
-/* #define BOOST_RE_INT64_T_5 */
-/* #define BOOST_RE_INT64_T_6 */
-
 /* BOOST_RE_NO_CAT                 Define if the compiler does not support POSIX style
                              message categories (catopen catgets catclose). */
 /* #define BOOST_RE_NO_CAT */
@@ -85,15 +51,6 @@
                              the current translation mode. */
 /* #define BOOST_RE_THREADS */
 
-/* BOOST_RE_NESTED_TEMPLATE_DECL   Defaults to template, the standard prefix when accessing
-                             nested template classes, can be redefined to nothing if
-                             the compiler does not support this. */
-/* #define BOOST_RE_NESTED_TEMPLATE_DECL */
-
-/* BOOST_RE_NO_TEMPLATE_INST       If explicit template instantiation with the "template class X"
-                             syntax is not supported */
-/* #define BOOST_RE_NO_TEMPLATE_INST */
-
 /* BOOST_RE_NO_TEMPLATE_MERGE      If template in separate translation units don't merge at link time */
 /* #define BOOST_RE_NO_TEMPLATE_MERGE */
 
@@ -127,11 +84,11 @@
 /* BOOST_RE_NO_ITERATOR_H          Define if you do not have a version of . */
 /* #define BOOST_RE_NO_ITERATOR_H */
 
-/* BOOST_RE_NO_MEMORY_H            Define if  does not fully comply with the
+/* BOOST_NO_STD_ALLOCATOR    Define if  does not fully comply with the
                              latest standard, and is not auto-recognised,
                              that means nested template classes
                              which hardly any compilers support at present. */
-/* #define BOOST_RE_NO_MEMORY_H */
+/* #define BOOST_NO_STD_ALLOCATOR */
 
 /* BOOST_RE_NO_LOCALE_H            Define if there is no verion of the standard
                               header available. */
@@ -154,267 +111,14 @@
 /* BOOST_RE_OLD_IOSTREAM           If the new iostreamm classes are not available */
 /* #define BOOST_RE_OLD_IOSTREAM */
 
-/* BOOST_RE_DISTANCE_T             For std::distance:
-                             0 = NA
-                      1 = std::distance(i, j, n)
-                      2 = n = std::distance(i, j) */
-/* #define BOOST_RE_DISTANCE_T_0 */
-/* #define BOOST_RE_DISTANCE_T_1 */
-/* #define BOOST_RE_DISTANCE_T_2 */
-
-/* BOOST_RE_ITERATOR_T             Defines generic standard iterator type if available, use this as
-                             a shortcut to define all the other iterator types.
-                             1 = std::iterator
-                      2 = std::iterator */
-/* #define BOOST_RE_ITERATOR_T_0 */
-/* #define BOOST_RE_ITERATOR_T_1 */
-/* #define BOOST_RE_ITERATOR_T_2 */
-
-/* BOOST_RE_OI_T                   For output iterators:
-                             0 = NA
-                      1 = std::iterator
-                      2 = std::iterator
-                      3 = std::output_iterator */
-/* #define BOOST_RE_OI_T_0 */
-/* #define BOOST_RE_OI_T_1 */
-/* #define BOOST_RE_OI_T_2 */
-/* #define BOOST_RE_OI_T_3 */
-
-/* BOOST_RE_II_T                   For input iterators:
-                             0 = NA
-                      1 = std::iterator
-                      2 = std::iterator
-                      3 = std::input_iterator
-                      4 = std::input_iterator */
-/* #define BOOST_RE_II_T_0 */
-/* #define BOOST_RE_II_T_1 */
-/* #define BOOST_RE_II_T_2 */
-/* #define BOOST_RE_II_T_3 */
-/* #define BOOST_RE_II_T_4 */
-
-
-/* BOOST_RE_FI_T                   For forward iterators:
-                             0 = NA
-                      1 = std::iterator
-                      2 = std::iterator
-                      3 = std::forward_iterator */
-/* #define BOOST_RE_FI_T_0 */
-/* #define BOOST_RE_FI_T_1 */
-/* #define BOOST_RE_FI_T_2 */
-/* #define BOOST_RE_FI_T_3 */
-
-/* BOOST_RE_BI_T                   For bidirectional iterators:
-                             0 = NA
-                      1 = std::iterator
-                      2 = std::iterator
-                      3 = std::bidirectional_iterator */
-/* #define BOOST_RE_BI_T_0 */
-/* #define BOOST_RE_BI_T_1 */
-/* #define BOOST_RE_BI_T_2 */
-/* #define BOOST_RE_BI_T_3 */
-
-/* BOOST_RE_RI_T                   For random access iterators:
-                             0 = NA
-                             1 = std::iterator
-                      2 = std::iterator
-                      3 = std::random_access_iterator */
-/* #define BOOST_RE_RI_T_0 */
-/* #define BOOST_RE_RI_T_1 */
-/* #define BOOST_RE_RI_T_2 */
-/* #define BOOST_RE_RI_T_3 */
+/* BOOST_NO_STD_DISTANCE             If std::distance is not present or non-standard */
+/* #define BOOST_NO_STD_DISTANCE */
 
 /* BOOST_RE_NO_OI_ASSIGN           If output iterators ostream_iterator<>, back_insert_iterator<> and 
                              front_insert_iterator<> do not have assignment operators */
 /* #define BOOST_RE_NO_OI_ASSIGN */
 
 
-#ifdef BOOST_RE_INT64_T_0
-#define BOOST_RE_NO_INT64
-#elif defined(BOOST_RE_INT64_T_1)
-#define BOOST_RE_INT64t short
-#define BOOST_RE_IMM64(val) val
-#elif defined(BOOST_RE_INT64_T_2)
-#define BOOST_RE_INT64t int
-#define BOOST_RE_IMM64(val) val
-#elif defined(BOOST_RE_INT64_T_3)
-#define BOOST_RE_INT64t long
-#define BOOST_RE_IMM64(val) val##L
-#elif defined(BOOST_RE_INT64_T_4)
-#define BOOST_RE_INT64t int64_t
-#define BOOST_RE_IMM64(val) INT64_C(val)
-#elif defined(BOOST_RE_INT64_T_5)
-#define BOOST_RE_INT64t long long
-#define BOOST_RE_IMM64(val) val##LL
-#elif defined(BOOST_RE_INT64_T_6)
-#define BOOST_RE_INT64t __int64
-#define BOOST_RE_IMM64(val) val##i64
-#else
-syntax error: unknown value for BOOST_RE_INT64_T
-#endif
-
-#ifdef BOOST_RE_DISTANCE_T_0
-#  define BOOST_RE_DISTANCE(i, j, n) n = j - i
-#elif defined(BOOST_RE_DISTANCE_T_1)
-#  define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j)
-#elif defined(BOOST_RE_DISTANCE_T_2)
-#  define BOOST_RE_DISTANCE(i, j, n) (n = 0, std::distance(i, j, n))
-#else
-syntax erorr
-#endif
-
-#ifdef BOOST_RE_ITERATOR_T_0
-#ifndef BOOST_RE_OI_T_0
-#define BOOST_RE_OI_T_0 BOOST_RE_ITERATOR_T_0
-#endif
-#ifndef BOOST_RE_II_T_0
-#define BOOST_RE_II_T_0 BOOST_RE_ITERATOR_T_0
-#endif
-#ifndef BOOST_RE_FI_T_0
-#define BOOST_RE_FI_T_0 BOOST_RE_ITERATOR_T_0
-#endif
-#ifndef BOOST_RE_BI_T_0
-#define BOOST_RE_BI_T_0 BOOST_RE_ITERATOR_T_0
-#endif
-#ifndef BOOST_RE_RI_T_0
-#define BOOST_RE_RI_T_0 BOOST_RE_ITERATOR_T_0
-#endif
-#endif
-
-#ifdef BOOST_RE_ITERATOR_T_1
-#ifndef BOOST_RE_OI_T_1
-#define BOOST_RE_OI_T_1 BOOST_RE_ITERATOR_T_1
-#endif
-#ifndef BOOST_RE_II_T_1
-#define BOOST_RE_II_T_1 BOOST_RE_ITERATOR_T_1
-#endif
-#ifndef BOOST_RE_FI_T_1
-#define BOOST_RE_FI_T_1 BOOST_RE_ITERATOR_T_1
-#endif
-#ifndef BOOST_RE_BI_T_1
-#define BOOST_RE_BI_T_1 BOOST_RE_ITERATOR_T_1
-#endif
-#ifndef BOOST_RE_RI_T_1
-#define BOOST_RE_RI_T_1 BOOST_RE_ITERATOR_T_1
-#endif
-#endif
-
-#ifdef BOOST_RE_ITERATOR_T_2
-#ifndef BOOST_RE_OI_T_2
-#define BOOST_RE_OI_T_2 BOOST_RE_ITERATOR_T_2
-#endif
-#ifndef BOOST_RE_II_T_2
-#define BOOST_RE_II_T_2 BOOST_RE_ITERATOR_T_2
-#endif
-#ifndef BOOST_RE_FI_T_2
-#define BOOST_RE_FI_T_2 BOOST_RE_ITERATOR_T_2
-#endif
-#ifndef BOOST_RE_BI_T_2
-#define BOOST_RE_BI_T_2 BOOST_RE_ITERATOR_T_2
-#endif
-#ifndef BOOST_RE_RI_T_2
-#define BOOST_RE_RI_T_2 BOOST_RE_ITERATOR_T_2
-#endif
-#endif
-
-#ifdef BOOST_RE_ITERATOR_T_3
-#ifndef BOOST_RE_OI_T_3
-#define BOOST_RE_OI_T_3 BOOST_RE_ITERATOR_T_3
-#endif
-#ifndef BOOST_RE_II_T_3
-#define BOOST_RE_II_T_3 BOOST_RE_ITERATOR_T_3
-#endif
-#ifndef BOOST_RE_FI_T_3
-#define BOOST_RE_FI_T_3 BOOST_RE_ITERATOR_T_3
-#endif
-#ifndef BOOST_RE_BI_T_3
-#define BOOST_RE_BI_T_3 BOOST_RE_ITERATOR_T_3
-#endif
-#ifndef BOOST_RE_RI_T_3
-#define BOOST_RE_RI_T_3 BOOST_RE_ITERATOR_T_3
-#endif
-#endif
-
-#ifdef BOOST_RE_ITERATOR_T_4
-#ifndef BOOST_RE_OI_T_4
-#define BOOST_RE_OI_T_4 BOOST_RE_ITERATOR_T_4
-#endif
-#ifndef BOOST_RE_II_T_4
-#define BOOST_RE_II_T_4 BOOST_RE_ITERATOR_T_4
-#endif
-#ifndef BOOST_RE_FI_T_4
-#define BOOST_RE_FI_T_4 BOOST_RE_ITERATOR_T_4
-#endif
-#ifndef BOOST_RE_BI_T_4
-#define BOOST_RE_BI_T_4 BOOST_RE_ITERATOR_T_4
-#endif
-#ifndef BOOST_RE_RI_T_4
-#define BOOST_RE_RI_T_4 BOOST_RE_ITERATOR_T_4
-#endif
-#endif
-
-#ifdef BOOST_RE_OI_T_0
-# define BOOST_RE_OUTPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-#elif defined(BOOST_RE_OI_T_1)
-# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_OI_T_2)
-# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_OI_T_3)
-# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
-#else
-syntax error
-#endif
-
-#ifdef BOOST_RE_II_T_0
-# define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-#elif defined(BOOST_RE_II_T_1)
-#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_II_T_2)
-#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_II_T_3)
-# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator
-#elif defined(BOOST_RE_II_T_4)
-# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator
-#else
-syntax error
-#endif
-
-#ifdef BOOST_RE_FI_T_0
-# define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-#elif defined(BOOST_RE_FI_T_1)
-# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_FI_T_2)
-# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_FI_T_3)
-# define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator
-#else
-syntax error
-#endif
-
-#ifdef BOOST_RE_BI_T_0
-# define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-#elif defined(BOOST_RE_BI_T_1)
-# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_BI_T_2)
-# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_BI_T_3)
-# define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator
-#else
-syntax error
-#endif
-
-#ifdef BOOST_RE_RI_T_0
-# define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base
-#elif defined(BOOST_RE_RI_T_1)
-# define BOOST_RE_RA_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_RI_T_2)
-# define BOOST_RE_RA_ITERATOR(T, D) std::iterator
-#elif defined(BOOST_RE_RI_T_3)
-# define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator
-#else
-syntax error
-#endif
-
-
 #include 
 
 #ifndef BOOST_RE_NO_ITERATOR_H
@@ -426,24 +130,6 @@ syntax error
 #endif
 #endif
 
-#if defined(BOOST_RE_NO_MEMORY_H) || defined(__GNUC__)
- #define BOOST_RE_OLD_ALLOCATORS
- #define REBIND_INSTANCE(x, y, inst) re_alloc_binder(inst)
- #define REBIND_TYPE(x, y) re_alloc_binder
- #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_DEFAULT_PARAM( boost::re_detail::jm_def_alloc )
- #define BOOST_RE_DEF_ALLOC(x) boost::re_detail::jm_def_alloc
-
- #define BOOST_RE_NEED_BINDER
- #define BOOST_RE_NEED_ALLOC
-#else
-#include 
- #define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other(inst)
- #define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other
- #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator )
- #define BOOST_RE_DEF_ALLOC(x) std::allocator
-#endif
-
-
 #endif // BOOST_RE_AUTO_CONFIGURE
 
 
diff --git a/include/boost/regex/detail/regex_raw_buffer.hpp b/include/boost/regex/detail/regex_raw_buffer.hpp
index f75dd8d3..8f504eeb 100644
--- a/include/boost/regex/detail/regex_raw_buffer.hpp
+++ b/include/boost/regex/detail/regex_raw_buffer.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_raw_buffer.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Raw character buffer for regex code.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
@@ -109,7 +109,7 @@ class raw_storage
 {
 public:
    typedef Allocator allocator_type;
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, allocator_type) alloc_inst_type;
+   typedef typename boost::re_detail::rebind_allocator::type alloc_inst_type;
    typedef typename alloc_inst_type::size_type                                size_type;
    typedef typename alloc_inst_type::pointer                                  pointer;
 private:
diff --git a/include/boost/regex/detail/regex_split.hpp b/include/boost/regex/detail/regex_split.hpp
index 765d6951..09543923 100644
--- a/include/boost/regex/detail/regex_split.hpp
+++ b/include/boost/regex/detail/regex_split.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_split.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Implements regex_split and associated functions.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
diff --git a/include/boost/regex/detail/regex_stack.hpp b/include/boost/regex/detail/regex_stack.hpp
index 0d6f94b6..08bccd36 100644
--- a/include/boost/regex/detail/regex_stack.hpp
+++ b/include/boost/regex/detail/regex_stack.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_stack.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Implements customised internal regex stacks.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
@@ -52,8 +52,8 @@ template 
 class jstack
 {
 private:
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, Allocator) allocator_type;
-   typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(T, Allocator)             T_alloc_type;
+   typedef typename boost::re_detail::rebind_allocator::type allocator_type;
+   typedef typename boost::re_detail::rebind_allocator::type             T_alloc_type;
    typedef typename T_alloc_type::size_type                              size_type;
    typedef T value_type;
    struct node
diff --git a/include/boost/regex/detail/regex_synch.hpp b/include/boost/regex/detail/regex_synch.hpp
index e07f34e1..b9a2e767 100644
--- a/include/boost/regex/detail/regex_synch.hpp
+++ b/include/boost/regex/detail/regex_synch.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex_synch.hpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Thread synchronisation for regex code.
   *                Note this is an internal header file included
   *                by regex.hpp, do not include on its own.
diff --git a/include/boost/regex/pattern_except.hpp b/include/boost/regex/pattern_except.hpp
index 2ee2f819..8018e3e7 100644
--- a/include/boost/regex/pattern_except.hpp
+++ b/include/boost/regex/pattern_except.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         pattern_except.cpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares pattern-matching exception classes.
   */
 
diff --git a/include/boost/regex/regex_traits.hpp b/include/boost/regex/regex_traits.hpp
index a496a9f2..5db8f78d 100644
--- a/include/boost/regex/regex_traits.hpp
+++ b/include/boost/regex/regex_traits.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         regex.cpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Declares regular expression traits classes.
   */
 
@@ -164,7 +164,7 @@ protected:
    static unsigned short class_map[map_size];
    static char lower_case_map[map_size];
 
-   static jm_uintfast32_t BOOST_RE_CALL do_lookup_class(const char* p);
+   static boost::uint_fast32_t BOOST_RE_CALL do_lookup_class(const char* p);
    static bool BOOST_RE_CALL do_lookup_collate(std::string& buf, const char* p);
    static void BOOST_RE_CALL do_update_ctype();
    static void BOOST_RE_CALL do_update_collate();
@@ -213,7 +213,7 @@ public:
       return false;
    }
    
-   static bool BOOST_RE_CALL is_class(char c, jm_uintfast32_t f)
+   static bool BOOST_RE_CALL is_class(char c, boost::uint_fast32_t f)
    {
       return BOOST_RE_MAKE_BOOL(class_map[(size_type)(uchar_type)c] & f);
    }
@@ -221,7 +221,7 @@ public:
    static int BOOST_RE_CALL toi(char c);
    static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix);
 
-   static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
+   static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
    {
       std::string s(first, last);
       return do_lookup_class(s.c_str());
@@ -293,7 +293,7 @@ public:
    static bool BOOST_RE_CALL is_combining(wchar_t c)
    { return re_detail::is_combining(c); }
    
-   static bool BOOST_RE_CALL is_class(wchar_t c, jm_uintfast32_t f)
+   static bool BOOST_RE_CALL is_class(wchar_t c, boost::uint_fast32_t f)
    {
       return BOOST_RE_MAKE_BOOL(((uchar_type)c < 256) ? (re_detail::wide_unicode_classes[(size_type)(uchar_type)c] & f) : do_iswclass(c, f));
    }
@@ -301,7 +301,7 @@ public:
    static int BOOST_RE_CALL toi(wchar_t c);
    static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix);
 
-   static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
+   static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
 
    static bool BOOST_RE_CALL lookup_collatename(std::basic_string& s, const wchar_t* first, const wchar_t* last);
 
@@ -321,7 +321,7 @@ public:
    static unsigned int BOOST_RE_CALL strnarrow(char *s1, unsigned int len, const wchar_t *s2);
    static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
 private:
-   static bool BOOST_RE_CALL do_iswclass(wchar_t c, jm_uintfast32_t f);
+   static bool BOOST_RE_CALL do_iswclass(wchar_t c, boost::uint_fast32_t f);
    static void BOOST_RE_CALL free();
    static void BOOST_RE_CALL init();
    static bool BOOST_RE_CALL do_lookup_collate(std::basic_string& out, const wchar_t* first, const wchar_t* last);
@@ -369,7 +369,7 @@ protected:
    static unsigned short class_map[map_size];
    static char lower_case_map[map_size];
 
-   static jm_uintfast32_t BOOST_RE_CALL do_lookup_class(const char* p);
+   static boost::uint_fast32_t BOOST_RE_CALL do_lookup_class(const char* p);
    static bool BOOST_RE_CALL do_lookup_collate(std::string& buf, const char* p);
    static void BOOST_RE_CALL do_free();
    static void BOOST_RE_CALL do_init();
@@ -420,7 +420,7 @@ public:
       return false;
    }
    
-   static bool BOOST_RE_CALL is_class(char c, jm_uintfast32_t f)
+   static bool BOOST_RE_CALL is_class(char c, boost::uint_fast32_t f)
    {
       return BOOST_RE_MAKE_BOOL(class_map[(size_type)(uchar_type)c] & f);
    }
@@ -428,7 +428,7 @@ public:
    static int BOOST_RE_CALL toi(char c);
    static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix);
 
-   static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
+   static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
    {
       std::string s(first, last);
       return do_lookup_class(s.c_str());
@@ -490,7 +490,7 @@ public:
    static bool BOOST_RE_CALL is_combining(wchar_t c)
    { return re_detail::is_combining(c); }
    
-   static bool BOOST_RE_CALL is_class(wchar_t c, jm_uintfast32_t f)
+   static bool BOOST_RE_CALL is_class(wchar_t c, boost::uint_fast32_t f)
    {
       return BOOST_RE_MAKE_BOOL(((uchar_type)c < 256) ? (wide_unicode_classes[(size_type)(uchar_type)c] & f) : do_iswclass(c, f));
    }
@@ -498,7 +498,7 @@ public:
    static int BOOST_RE_CALL toi(wchar_t c);
    static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix);
 
-   static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
+   static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
 
    static bool BOOST_RE_CALL lookup_collatename(std::basic_string& s, const wchar_t* first, const wchar_t* last);
 
@@ -519,7 +519,7 @@ public:
    static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
 
 private:
-   static bool BOOST_RE_CALL do_iswclass(wchar_t c, jm_uintfast32_t f);
+   static bool BOOST_RE_CALL do_iswclass(wchar_t c, boost::uint_fast32_t f);
    static bool BOOST_RE_CALL do_lookup_collate(std::basic_string& out, const wchar_t* first, const wchar_t* last);
    static w32_regex_traits init_;
    static wchar_t BOOST_RE_CALL wtolower(wchar_t c);
@@ -640,7 +640,7 @@ public:
       return false;
    }
    
-   bool BOOST_RE_CALL is_class(char c, jm_uintfast32_t f)const
+   bool BOOST_RE_CALL is_class(char c, boost::uint_fast32_t f)const
    {
       if(pctype->is((std::ctype::mask)(f & char_class_all_base), c))
          return true;
@@ -654,7 +654,7 @@ public:
    int BOOST_RE_CALL toi(char c)const;
    int BOOST_RE_CALL toi(const char*& first, const char* last, int radix)const;
 
-   jm_uintfast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)const;
+   boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)const;
    bool BOOST_RE_CALL lookup_collatename(std::string& s, const char* first, const char* last)const;
 
    std::string BOOST_RE_CALL error_string(unsigned id)const;
@@ -724,7 +724,7 @@ public:
    static bool BOOST_RE_CALL is_combining(wchar_t c)
    { return re_detail::is_combining(c); }
    
-   bool BOOST_RE_CALL is_class(wchar_t c, jm_uintfast32_t f)const
+   bool BOOST_RE_CALL is_class(wchar_t c, boost::uint_fast32_t f)const
    {
       if(pctype->is((std::ctype::mask)(f & char_class_all_base), c))
          return true;
@@ -740,7 +740,7 @@ public:
    int BOOST_RE_CALL toi(wchar_t c)const;
    int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix)const;
 
-   jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const;
+   boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const;
    bool BOOST_RE_CALL lookup_collatename(std::basic_string& s, const wchar_t* first, const wchar_t* last)const;
 
    std::string BOOST_RE_CALL error_string(unsigned id)const;
diff --git a/index.htm b/index.htm
index 3da60e70..b408e9b3 100644
--- a/index.htm
+++ b/index.htm
@@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
         
         

Regex++, Index.

-

(version 3.10, 18 April 2000)

+

(version 3.11, 18 April 2000)

Copyright (c) 1998-2000
 Dr John Maddock
 
diff --git a/introduction.htm b/introduction.htm
index 23dae371..0e026a80 100644
--- a/introduction.htm
+++ b/introduction.htm
@@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
         
         

Regex++, Introduction.

-

(version 3.10, 18 April 2000)

+

(version 3.11, 18 April 2000)

Copyright (c) 1998-2000
 Dr John Maddock
 
@@ -410,7 +410,7 @@ run one of the makefiles described above.

Sun Workshop 6.1

-

There is a makefile for the sun (6.1) compiler (C++ version 3.10). +

There is a makefile for the sun (6.1) compiler (C++ version 3.11). From the command prompt change to the <boost>/libs/regex/build directory and type:

diff --git a/jm_opt.in b/jm_opt.in index ad2b32ef..25cadf69 100644 --- a/jm_opt.in +++ b/jm_opt.in @@ -10,21 +10,6 @@ /* BOOST_NO_STDC_NAMESPACE C library not in namespace std */ #undef BOOST_NO_STDC_NAMESPACE -/* BOOST_RE_NO_MUTABLE Disables use of mutable keyword. */ -#undef BOOST_RE_NO_MUTABLE - -/* BOOST_RE_INT32_LONG If 32-bit integers are long */ -#undef BOOST_RE_INT32_LONG - -/* BOOST_RE_NO_TEMPLATE_FRIEND If template friend declarations are not supported */ -#undef BOOST_RE_NO_TEMPLATE_FRIEND - -/* BOOST_RE_PLATFORM_WINDOWS Platform is MS Windows. */ -#undef BOOST_RE_PLATFORM_WINDOWS - -/* BOOST_RE_PLATFORM_DOS Platform if MSDOS. */ -#undef BOOST_RE_PLATFORM_DOS - /* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */ #undef BOOST_RE_PLATFORM_W32 @@ -49,8 +34,8 @@ /* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */ #undef BOOST_RE_NO_WSPRINTF -/* BOOST_RE_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */ -#undef BOOST_RE_NO_MEMBER_TEMPLATES +/* BOOST_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */ +#undef BOOST_NO_MEMBER_TEMPLATES /* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */ #undef BOOST_RE_NO_TEMPLATE_RETURNS @@ -58,25 +43,6 @@ /* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */ #undef BOOST_RE_NO_PARTIAL_FUNC_SPEC -/* BOOST_RE_NO_INT64 If 64bit integers are not supported. */ -/* BOOST_RE_INT64t The type of a 64-bit signed integer if available. */ -/* BOOST_RE_IMM64(val) Declares a 64-bit immediate value by appending any - necessary suffix to val. */ -/* BOOST_RE_INT64_T 0 = NA - 1 = short - 2 = int - 3 = long - 4 = int64_t - 5 = long long - 6 = __int64 */ -#undef BOOST_RE_INT64_T_0 -#undef BOOST_RE_INT64_T_1 -#undef BOOST_RE_INT64_T_2 -#undef BOOST_RE_INT64_T_3 -#undef BOOST_RE_INT64_T_4 -#undef BOOST_RE_INT64_T_5 -#undef BOOST_RE_INT64_T_6 - /* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style message categories (catopen catgets catclose). */ #undef BOOST_RE_NO_CAT @@ -85,15 +51,6 @@ the current translation mode. */ #undef BOOST_RE_THREADS -/* BOOST_RE_NESTED_TEMPLATE_DECL Defaults to template, the standard prefix when accessing - nested template classes, can be redefined to nothing if - the compiler does not support this. */ -#undef BOOST_RE_NESTED_TEMPLATE_DECL - -/* BOOST_RE_NO_TEMPLATE_INST If explicit template instantiation with the "template class X" - syntax is not supported */ -#undef BOOST_RE_NO_TEMPLATE_INST - /* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */ #undef BOOST_RE_NO_TEMPLATE_MERGE @@ -127,11 +84,11 @@ /* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of . */ #undef BOOST_RE_NO_ITERATOR_H -/* BOOST_RE_NO_MEMORY_H Define if does not fully comply with the +/* BOOST_NO_STD_ALLOCATOR Define if does not fully comply with the latest standard, and is not auto-recognised, that means nested template classes which hardly any compilers support at present. */ -#undef BOOST_RE_NO_MEMORY_H +#undef BOOST_NO_STD_ALLOCATOR /* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard header available. */ @@ -154,267 +111,13 @@ /* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */ #undef BOOST_RE_OLD_IOSTREAM -/* BOOST_RE_DISTANCE_T For std::distance: - 0 = NA - 1 = std::distance(i, j, n) - 2 = n = std::distance(i, j) */ -#undef BOOST_RE_DISTANCE_T_0 -#undef BOOST_RE_DISTANCE_T_1 -#undef BOOST_RE_DISTANCE_T_2 - -/* BOOST_RE_ITERATOR_T Defines generic standard iterator type if available, use this as - a shortcut to define all the other iterator types. - 1 = std::iterator - 2 = std::iterator */ -#undef BOOST_RE_ITERATOR_T_0 -#undef BOOST_RE_ITERATOR_T_1 -#undef BOOST_RE_ITERATOR_T_2 - -/* BOOST_RE_OI_T For output iterators: - 0 = NA - 1 = std::iterator - 2 = std::iterator - 3 = std::output_iterator */ -#undef BOOST_RE_OI_T_0 -#undef BOOST_RE_OI_T_1 -#undef BOOST_RE_OI_T_2 -#undef BOOST_RE_OI_T_3 - -/* BOOST_RE_II_T For input iterators: - 0 = NA - 1 = std::iterator - 2 = std::iterator - 3 = std::input_iterator - 4 = std::input_iterator */ -#undef BOOST_RE_II_T_0 -#undef BOOST_RE_II_T_1 -#undef BOOST_RE_II_T_2 -#undef BOOST_RE_II_T_3 -#undef BOOST_RE_II_T_4 - - -/* BOOST_RE_FI_T For forward iterators: - 0 = NA - 1 = std::iterator - 2 = std::iterator - 3 = std::forward_iterator */ -#undef BOOST_RE_FI_T_0 -#undef BOOST_RE_FI_T_1 -#undef BOOST_RE_FI_T_2 -#undef BOOST_RE_FI_T_3 - -/* BOOST_RE_BI_T For bidirectional iterators: - 0 = NA - 1 = std::iterator - 2 = std::iterator - 3 = std::bidirectional_iterator */ -#undef BOOST_RE_BI_T_0 -#undef BOOST_RE_BI_T_1 -#undef BOOST_RE_BI_T_2 -#undef BOOST_RE_BI_T_3 - -/* BOOST_RE_RI_T For random access iterators: - 0 = NA - 1 = std::iterator - 2 = std::iterator - 3 = std::random_access_iterator */ -#undef BOOST_RE_RI_T_0 -#undef BOOST_RE_RI_T_1 -#undef BOOST_RE_RI_T_2 -#undef BOOST_RE_RI_T_3 +/* BOOST_NO_STD_DISTANCE If there is no std::distance. */ +#undef BOOST_NO_STD_DISTANCE /* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and front_insert_iterator<> do not have assignment operators */ #undef BOOST_RE_NO_OI_ASSIGN - -#ifdef BOOST_RE_INT64_T_0 -#define BOOST_RE_NO_INT64 -#elif defined(BOOST_RE_INT64_T_1) -#define BOOST_RE_INT64t short -#define BOOST_RE_IMM64(val) val -#elif defined(BOOST_RE_INT64_T_2) -#define BOOST_RE_INT64t int -#define BOOST_RE_IMM64(val) val -#elif defined(BOOST_RE_INT64_T_3) -#define BOOST_RE_INT64t long -#define BOOST_RE_IMM64(val) val##L -#elif defined(BOOST_RE_INT64_T_4) -#define BOOST_RE_INT64t int64_t -#define BOOST_RE_IMM64(val) INT64_C(val) -#elif defined(BOOST_RE_INT64_T_5) -#define BOOST_RE_INT64t long long -#define BOOST_RE_IMM64(val) val##LL -#elif defined(BOOST_RE_INT64_T_6) -#define BOOST_RE_INT64t __int64 -#define BOOST_RE_IMM64(val) val##i64 -#else -syntax error: unknown value for BOOST_RE_INT64_T -#endif - -#ifdef BOOST_RE_DISTANCE_T_0 -# define BOOST_RE_DISTANCE(i, j, n) n = j - i -#elif defined(BOOST_RE_DISTANCE_T_1) -# define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j) -#elif defined(BOOST_RE_DISTANCE_T_2) -# define BOOST_RE_DISTANCE(i, j, n) (n = 0, std::distance(i, j, n)) -#else -syntax erorr -#endif - -#ifdef BOOST_RE_ITERATOR_T_0 -#ifndef BOOST_RE_OI_T_0 -#define BOOST_RE_OI_T_0 BOOST_RE_ITERATOR_T_0 -#endif -#ifndef BOOST_RE_II_T_0 -#define BOOST_RE_II_T_0 BOOST_RE_ITERATOR_T_0 -#endif -#ifndef BOOST_RE_FI_T_0 -#define BOOST_RE_FI_T_0 BOOST_RE_ITERATOR_T_0 -#endif -#ifndef BOOST_RE_BI_T_0 -#define BOOST_RE_BI_T_0 BOOST_RE_ITERATOR_T_0 -#endif -#ifndef BOOST_RE_RI_T_0 -#define BOOST_RE_RI_T_0 BOOST_RE_ITERATOR_T_0 -#endif -#endif - -#ifdef BOOST_RE_ITERATOR_T_1 -#ifndef BOOST_RE_OI_T_1 -#define BOOST_RE_OI_T_1 BOOST_RE_ITERATOR_T_1 -#endif -#ifndef BOOST_RE_II_T_1 -#define BOOST_RE_II_T_1 BOOST_RE_ITERATOR_T_1 -#endif -#ifndef BOOST_RE_FI_T_1 -#define BOOST_RE_FI_T_1 BOOST_RE_ITERATOR_T_1 -#endif -#ifndef BOOST_RE_BI_T_1 -#define BOOST_RE_BI_T_1 BOOST_RE_ITERATOR_T_1 -#endif -#ifndef BOOST_RE_RI_T_1 -#define BOOST_RE_RI_T_1 BOOST_RE_ITERATOR_T_1 -#endif -#endif - -#ifdef BOOST_RE_ITERATOR_T_2 -#ifndef BOOST_RE_OI_T_2 -#define BOOST_RE_OI_T_2 BOOST_RE_ITERATOR_T_2 -#endif -#ifndef BOOST_RE_II_T_2 -#define BOOST_RE_II_T_2 BOOST_RE_ITERATOR_T_2 -#endif -#ifndef BOOST_RE_FI_T_2 -#define BOOST_RE_FI_T_2 BOOST_RE_ITERATOR_T_2 -#endif -#ifndef BOOST_RE_BI_T_2 -#define BOOST_RE_BI_T_2 BOOST_RE_ITERATOR_T_2 -#endif -#ifndef BOOST_RE_RI_T_2 -#define BOOST_RE_RI_T_2 BOOST_RE_ITERATOR_T_2 -#endif -#endif - -#ifdef BOOST_RE_ITERATOR_T_3 -#ifndef BOOST_RE_OI_T_3 -#define BOOST_RE_OI_T_3 BOOST_RE_ITERATOR_T_3 -#endif -#ifndef BOOST_RE_II_T_3 -#define BOOST_RE_II_T_3 BOOST_RE_ITERATOR_T_3 -#endif -#ifndef BOOST_RE_FI_T_3 -#define BOOST_RE_FI_T_3 BOOST_RE_ITERATOR_T_3 -#endif -#ifndef BOOST_RE_BI_T_3 -#define BOOST_RE_BI_T_3 BOOST_RE_ITERATOR_T_3 -#endif -#ifndef BOOST_RE_RI_T_3 -#define BOOST_RE_RI_T_3 BOOST_RE_ITERATOR_T_3 -#endif -#endif - -#ifdef BOOST_RE_ITERATOR_T_4 -#ifndef BOOST_RE_OI_T_4 -#define BOOST_RE_OI_T_4 BOOST_RE_ITERATOR_T_4 -#endif -#ifndef BOOST_RE_II_T_4 -#define BOOST_RE_II_T_4 BOOST_RE_ITERATOR_T_4 -#endif -#ifndef BOOST_RE_FI_T_4 -#define BOOST_RE_FI_T_4 BOOST_RE_ITERATOR_T_4 -#endif -#ifndef BOOST_RE_BI_T_4 -#define BOOST_RE_BI_T_4 BOOST_RE_ITERATOR_T_4 -#endif -#ifndef BOOST_RE_RI_T_4 -#define BOOST_RE_RI_T_4 BOOST_RE_ITERATOR_T_4 -#endif -#endif - -#ifdef BOOST_RE_OI_T_0 -# define BOOST_RE_OUTPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base -#elif defined(BOOST_RE_OI_T_1) -# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_OI_T_2) -# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_OI_T_3) -# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator -#else -syntax error -#endif - -#ifdef BOOST_RE_II_T_0 -# define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base -#elif defined(BOOST_RE_II_T_1) -#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_II_T_2) -#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_II_T_3) -# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator -#elif defined(BOOST_RE_II_T_4) -# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator -#else -syntax error -#endif - -#ifdef BOOST_RE_FI_T_0 -# define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base -#elif defined(BOOST_RE_FI_T_1) -# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_FI_T_2) -# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_FI_T_3) -# define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator -#else -syntax error -#endif - -#ifdef BOOST_RE_BI_T_0 -# define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base -#elif defined(BOOST_RE_BI_T_1) -# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_BI_T_2) -# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_BI_T_3) -# define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator -#else -syntax error -#endif - -#ifdef BOOST_RE_RI_T_0 -# define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base -#elif defined(BOOST_RE_RI_T_1) -# define BOOST_RE_RA_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_RI_T_2) -# define BOOST_RE_RA_ITERATOR(T, D) std::iterator -#elif defined(BOOST_RE_RI_T_3) -# define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator -#else -syntax error -#endif - - #include #ifndef BOOST_RE_NO_ITERATOR_H @@ -426,24 +129,6 @@ syntax error #endif #endif -#if defined(BOOST_RE_NO_MEMORY_H) || defined(__GNUC__) - #define BOOST_RE_OLD_ALLOCATORS - #define REBIND_INSTANCE(x, y, inst) re_alloc_binder(inst) - #define REBIND_TYPE(x, y) re_alloc_binder - #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_DEFAULT_PARAM( boost::re_detail::jm_def_alloc ) - #define BOOST_RE_DEF_ALLOC(x) boost::re_detail::jm_def_alloc - - #define BOOST_RE_NEED_BINDER - #define BOOST_RE_NEED_ALLOC -#else -#include - #define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other(inst) - #define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind::other - #define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator ) - #define BOOST_RE_DEF_ALLOC(x) std::allocator -#endif - - #endif // BOOST_RE_AUTO_CONFIGURE diff --git a/old_include/cregex.h b/old_include/cregex.h index 5a70cfc1..9f286be7 100644 --- a/old_include/cregex.h +++ b/old_include/cregex.h @@ -30,14 +30,9 @@ #define JM_CSTD std #define JM jm -#define JM_RA_ITERATOR(a,b) BOOST_RE_RA_ITERATOR(a,b) - #ifdef BOOST_RE_OLD_IOSTREAM #define JM_OLD_IOSTREAM #endif -#ifdef BOOST_RE_NO_MEMBER_TEMPLATES -#define JM_NO_MEMBER_TEMPLATES -#endif #ifdef __cplusplus diff --git a/posix_ref.htm b/posix_ref.htm index adc6617c..35c30c9e 100644 --- a/posix_ref.htm +++ b/posix_ref.htm @@ -20,7 +20,7 @@

Regex++, POSIX API Reference.

-(version 3.10, 18 April 2000) +(version 3.11, 18 April 2000)
Copyright (c) 1998-2000
 Dr John Maddock
diff --git a/src/c_regex_traits.cpp b/src/c_regex_traits.cpp
index a6821c94..0977a31a 100644
--- a/src/c_regex_traits.cpp
+++ b/src/c_regex_traits.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE         c_regex_traits.cpp
-  *   VERSION      3.10
+  *   VERSION      3.11
   *   DESCRIPTION: Implements the c_regex_traits traits class
   */
 
@@ -42,7 +42,7 @@ namespace{
 //
 // character classes:
 //
-jm_uintfast32_t re_char_class_id[] = {
+boost::uint_fast32_t re_char_class_id[] = {
    boost::re_detail::c_traits_base::char_class_alnum,
    boost::re_detail::c_traits_base::char_class_alpha,
    boost::re_detail::c_traits_base::char_class_cntrl,
@@ -481,7 +481,7 @@ void BOOST_RE_CALL c_traits_base::do_update_ctype()
    re_update_classes();
 }
 
-jm_uintfast32_t BOOST_RE_CALL c_traits_base::do_lookup_class(const char* p)
+boost::uint_fast32_t BOOST_RE_CALL c_traits_base::do_lookup_class(const char* p)
 {
    BOOST_RE_GUARD_STACK
    unsigned int i;
@@ -858,7 +858,7 @@ void BOOST_RE_CALL c_regex_traits::free()
 #endif
 }
 
-bool BOOST_RE_CALL c_regex_traits::do_iswclass(wchar_t c, jm_uintfast32_t f)
+bool BOOST_RE_CALL c_regex_traits::do_iswclass(wchar_t c, boost::uint_fast32_t f)
 {
    BOOST_RE_GUARD_STACK
    if((c & ~0xFF) == 0)
@@ -976,7 +976,7 @@ int BOOST_RE_CALL c_regex_traits::toi(const wchar_t*& first, const wcha
    return result;
 }
 
-jm_uintfast32_t BOOST_RE_CALL c_regex_traits::lookup_classname(const wchar_t* first, const wchar_t* last)
+boost::uint_fast32_t BOOST_RE_CALL c_regex_traits::lookup_classname(const wchar_t* first, const wchar_t* last)
 {
    std::basic_string s(first, last);
    unsigned int len = strnarrow((char*)0, 0, s.c_str());
diff --git a/src/c_regex_traits_common.cpp b/src/c_regex_traits_common.cpp
index a566a441..c2eaf8ce 100644
--- a/src/c_regex_traits_common.cpp
+++ b/src/c_regex_traits_common.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        c_regex_traits_common.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements common code and data for the
   *                c_regex_traits traits classes.
   */
diff --git a/src/cpp_regex_traits.cpp b/src/cpp_regex_traits.cpp
index f8589ea8..9f2b316c 100644
--- a/src/cpp_regex_traits.cpp
+++ b/src/cpp_regex_traits.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        c_regex_traits.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements the cpp_regex_traits traits class
   */
 #include 
@@ -39,7 +39,7 @@ namespace{
    const unsigned int re_classes_max = 14;
    const unsigned int char_set_size = CHAR_MAX - CHAR_MIN + 1;
 
-jm_uintfast32_t re_char_class_id[] = {
+boost::uint_fast32_t re_char_class_id[] = {
    boost::re_detail::cpp_regex_traits_base::char_class_alnum,
    boost::re_detail::cpp_regex_traits_base::char_class_alpha,
    boost::re_detail::cpp_regex_traits_base::char_class_cntrl,
@@ -342,7 +342,7 @@ int BOOST_RE_CALL cpp_regex_traits::toi(const char*& first, const char* la
       return 0;
 }
 
-jm_uintfast32_t BOOST_RE_CALL cpp_regex_traits::lookup_classname(const char* first, const char* last)const
+boost::uint_fast32_t BOOST_RE_CALL cpp_regex_traits::lookup_classname(const char* first, const char* last)const
 {
    BOOST_RE_GUARD_STACK
    unsigned int i;
@@ -708,7 +708,7 @@ int BOOST_RE_CALL cpp_regex_traits::toi(const wchar_t*& first, const wc
       return 0;
 }
 
-jm_uintfast32_t BOOST_RE_CALL cpp_regex_traits::lookup_classname(const wchar_t* first, const wchar_t* last)const
+boost::uint_fast32_t BOOST_RE_CALL cpp_regex_traits::lookup_classname(const wchar_t* first, const wchar_t* last)const
 {
    BOOST_RE_GUARD_STACK
    unsigned int i;
diff --git a/src/cregex.cpp b/src/cregex.cpp
index 14933d97..56fcae70 100644
--- a/src/cregex.cpp
+++ b/src/cregex.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        cregex.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements high level class boost::RexEx
   */
 #include 
@@ -170,7 +170,7 @@ RegEx& RegEx::operator=(const char* p)
 unsigned int RegEx::SetExpression(const char* p, bool icase)
 {
    BOOST_RE_GUARD_STACK
-   jm_uintfast32_t f = icase ? regbase::normal | regbase::use_except | regbase::icase : regbase::normal | regbase::use_except;
+   boost::uint_fast32_t f = icase ? regbase::normal | regbase::use_except | regbase::icase : regbase::normal | regbase::use_except;
    return pdata->e.set_expression(p, f);
 }
 
diff --git a/src/fileiter.cpp b/src/fileiter.cpp
index 8248624d..d7e19a45 100644
--- a/src/fileiter.cpp
+++ b/src/fileiter.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        fileiter.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx.
   */
 
diff --git a/src/posix_api.cpp b/src/posix_api.cpp
index 9519b1b7..c1567af7 100644
--- a/src/posix_api.cpp
+++ b/src/posix_api.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        posix_api.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements the Posix API wrappers.
   */
 
@@ -49,7 +49,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regcompA(regex_tA* expression, const char* p
       }
    }
    // set default flags:
-   jm_uintfast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
+   boost::uint_fast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
    expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
    // and translate those that are actually set:
 
@@ -152,7 +152,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regexecA(const regex_tA* expression, const c
 {
    BOOST_RE_GUARD_STACK
    bool result = false;
-   jm_uintfast32_t flags = match_default | expression->eflags;
+   boost::uint_fast32_t flags = match_default | expression->eflags;
    const char* end;
    const char* start;
    cmatch m;
diff --git a/src/primary_transform.hpp b/src/primary_transform.hpp
index bc49eed6..9537e7b6 100644
--- a/src/primary_transform.hpp
+++ b/src/primary_transform.hpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        primary_transform.hpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Heuristically determines the sort string format in use
   *                by the current locale.
   */
diff --git a/src/regex.cpp b/src/regex.cpp
index be274d3a..889bdc87 100644
--- a/src/regex.cpp
+++ b/src/regex.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        regex.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Misc boost::regbase member funnctions.
   */
 
diff --git a/src/regex_debug.cpp b/src/regex_debug.cpp
index 87fc0be0..6e1e8f8e 100644
--- a/src/regex_debug.cpp
+++ b/src/regex_debug.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        regex_debug.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Misc. debugging helpers.
   */
 
diff --git a/src/regex_synch.cpp b/src/regex_synch.cpp
index 271077ba..74889a23 100644
--- a/src/regex_synch.cpp
+++ b/src/regex_synch.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        regex_synch.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Thread synch helper functions, for regular
   *                expression library.
   */
diff --git a/src/w32_regex_traits.cpp b/src/w32_regex_traits.cpp
index fa7fa347..d7804849 100644
--- a/src/w32_regex_traits.cpp
+++ b/src/w32_regex_traits.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        w32_regex_traits.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements the w32_regex_traits traits class
   */
 
@@ -37,7 +37,7 @@ namespace{
 //
 // character classes:
 
-jm_uintfast32_t re_char_class_id[] = {
+boost::uint_fast32_t re_char_class_id[] = {
    boost::re_detail::w32_traits_base::char_class_alnum,
    boost::re_detail::w32_traits_base::char_class_alpha,
    boost::re_detail::w32_traits_base::char_class_cntrl,
@@ -378,7 +378,7 @@ std::string w32_traits_base::error_string(unsigned id)
    return re_get_error_str(id);
 }
 
-jm_uintfast32_t BOOST_RE_CALL w32_traits_base::do_lookup_class(const char* p)
+boost::uint_fast32_t BOOST_RE_CALL w32_traits_base::do_lookup_class(const char* p)
 {
    BOOST_RE_GUARD_STACK
    unsigned int i;
@@ -645,7 +645,7 @@ w32_regex_traits::~w32_regex_traits()
 #endif
 }
 
-bool BOOST_RE_CALL w32_regex_traits::do_iswclass(wchar_t c, jm_uintfast32_t f)
+bool BOOST_RE_CALL w32_regex_traits::do_iswclass(wchar_t c, boost::uint_fast32_t f)
 {
    BOOST_RE_GUARD_STACK
    if((c & ~0xFF) == 0)
@@ -756,7 +756,7 @@ int BOOST_RE_CALL w32_regex_traits::toi(const wchar_t*& first, const wc
    return result;
 }
 
-jm_uintfast32_t BOOST_RE_CALL w32_regex_traits::lookup_classname(const wchar_t* first, const wchar_t* last)
+boost::uint_fast32_t BOOST_RE_CALL w32_regex_traits::lookup_classname(const wchar_t* first, const wchar_t* last)
 {
    std::basic_string s(first, last);
    unsigned int len = strnarrow((char*)0, 0, s.c_str());
diff --git a/src/wide_posix_api.cpp b/src/wide_posix_api.cpp
index 0b20e3e1..b52b861a 100644
--- a/src/wide_posix_api.cpp
+++ b/src/wide_posix_api.cpp
@@ -16,7 +16,7 @@
  /*
   *   LOCATION:    see http://www.boost.org for most recent version.
   *   FILE:        wide_posix_api.cpp
-  *   VERSION:     3.10
+  *   VERSION:     3.11
   *   DESCRIPTION: Implements the wide character POSIX API wrappers.
   */
 
@@ -59,7 +59,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regcompW(regex_tW* expression, const wchar_t
       }
    }
    // set default flags:
-   jm_uintfast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
+   boost::uint_fast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
    expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
 
    // and translate those that are actually set:
@@ -162,7 +162,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regexecW(const regex_tW* expression, const w
 {
    BOOST_RE_GUARD_STACK
    bool result = false;
-   jm_uintfast32_t flags = match_default | expression->eflags;
+   boost::uint_fast32_t flags = match_default | expression->eflags;
    const wchar_t* end;
    const wchar_t* start;
    wcmatch m;
diff --git a/syntax.htm b/syntax.htm
index d76e5dcc..dc0d0243 100644
--- a/syntax.htm
+++ b/syntax.htm
@@ -20,7 +20,7 @@
 

Regex++, Regular Expression Syntax.

-(version 3.10, 18 April 2000) +(version 3.11, 18 April 2000)
Copyright (c) 1998-2000
 Dr John Maddock
diff --git a/template_class_ref.htm b/template_class_ref.htm
index 6402a986..f7097aae 100644
--- a/template_class_ref.htm
+++ b/template_class_ref.htm
@@ -21,7 +21,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
         
         

Regex++, Template Class and Algorithm Reference.

-

(version 3.10, 18 April 2000)

+

(version 3.11, 18 April 2000)

Copyright (c) 1998-9
 Dr John Maddock
 
@@ -427,7 +427,7 @@ for a container of charT. 

typedef Allocator allocator_type;    typedef Allocator alloc_type;    // flag_type -   typedef jm_uintfast32_t flag_type; +
   typedef boost::int_fast32_t flag_type; public:   // constructors   explicit reg_expression(const Allocator& a = Allocator()); @@ -550,7 +550,7 @@ member functions:
template <class ST, class SA>
reg_expression(const std::basic_string<charT, - ST, SA>& p, jm_uintfast32_t f = regbase::normal, const + ST, SA>& p, boost::int_fast32_t f = regbase::normal, const Allocator& a = Allocator());
 Constructs an instance of reg_expression from the expression denoted diff --git a/test/regress/parse.cpp b/test/regress/parse.cpp index 59b24e2e..6cec7367 100644 --- a/test/regress/parse.cpp +++ b/test/regress/parse.cpp @@ -16,7 +16,7 @@ /* * * FILE parse.cpp - * VERSION 3.10 + * VERSION 3.11 * * Input parsing functions for regress. * diff --git a/test/regress/regex_test.cpp b/test/regress/regex_test.cpp index e67385d4..b40eac66 100644 --- a/test/regress/regex_test.cpp +++ b/test/regress/regex_test.cpp @@ -16,7 +16,7 @@ /* * LOCATION: see http://www.boost.org for most recent version. * FILE regex_test.cpp - * VERSION 3.10 + * VERSION 3.11 * DESCRIPTION: Builds regression test program with default * locale and narrow character tests. Also * instantiates all the templates in the library diff --git a/test/regress/regress.cpp b/test/regress/regress.cpp index f443a058..029388af 100644 --- a/test/regress/regress.cpp +++ b/test/regress/regress.cpp @@ -16,7 +16,7 @@ /* * * FILE regress.cpp - * VERSION 3.10 + * VERSION 3.11 * * main() and associated code for regress. * @@ -39,6 +39,8 @@ using std::endl; #pragma hrdstop #endif +#include + #include "regress.h" #if defined(BOOST_MSVC) && defined(_DEBUG) @@ -72,7 +74,7 @@ void usage() } -int main(int argc, char * argv[]) +int cpp_main(int argc, char * argv[]) { #if defined(BOOST_MSVC) && defined(_DEBUG) // turn on heap reporting at program exit: @@ -111,10 +113,6 @@ int main(int argc, char * argv[]) } cout << line << " lines, " << tests << " tests completed in file " << argv[i] << endl; } - if(error_count) - cout << "There were " << error_count << " failures in total..." << endl; - else - cout << "No failures detected..." << endl; return error_count; } diff --git a/test/regress/regress.h b/test/regress/regress.h index 0b4bb2a8..de3ad69c 100644 --- a/test/regress/regress.h +++ b/test/regress/regress.h @@ -16,7 +16,7 @@ /* * * FILE regress.h - * VERSION 3.10 + * VERSION 3.11 * * Function and data declarations for regress. * @@ -129,7 +129,7 @@ public: typedef char value_type; - #ifndef BOOST_RE_NO_MEMBER_TEMPLATES + #ifndef BOOST_NO_MEMBER_TEMPLATES template struct rebind { @@ -187,7 +187,7 @@ public: // class debug_iterator // template -struct debug_iterator : public BOOST_RE_RA_ITERATOR(T, std::ptrdiff_t) +struct debug_iterator { typedef std::ptrdiff_t difference_type; typedef char_t value_type; @@ -306,16 +306,43 @@ struct debug_iterator : public BOOST_RE_RA_ITERATOR(T, std::ptrdiff_t) } }; -#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT >= 0x400) +#if defined(__SGI_STL_PORT) namespace std{ template inline random_access_iterator_tag __STL_CALL +__ITERATOR_CATEGORY(const debug_iterator&) { + return random_access_iterator_tag(); +} +} +#elif defined(__STL_CONFIG_H) +namespace std{ +template +inline random_access_iterator_tag +iterator_category(const debug_iterator&) { + return random_access_iterator_tag(); +} +} +#endif +#ifdef BOOST_MSVC +namespace std{ +template +inline random_access_iterator_tag __cdecl +_Iter_cat(const debug_iterator&) { + return random_access_iterator_tag(); +} +} +#endif +#ifdef BOOST_RWSTD_VER +namespace std{ +template +inline random_access_iterator_tag __iterator_category(const debug_iterator&) { return random_access_iterator_tag(); } } #endif + #ifdef BOOST_RE_TEST_LOCALE_W32 typedef boost::reg_expression, jm_debug_alloc> re_type; #elif defined(BOOST_RE_TEST_LOCALE_CPP) diff --git a/test/regress/tests.cpp b/test/regress/tests.cpp index f8fb438d..08a8b91d 100644 --- a/test/regress/tests.cpp +++ b/test/regress/tests.cpp @@ -16,7 +16,7 @@ /* * * FILE tests.cpp - * VERSION 3.10 + * VERSION 3.11 * * the actual tests conducted by regress. * diff --git a/test/regress/wregex_test.cpp b/test/regress/wregex_test.cpp index 6ab27035..fdfea4ee 100644 --- a/test/regress/wregex_test.cpp +++ b/test/regress/wregex_test.cpp @@ -16,7 +16,7 @@ /* * LOCATION: see http://www.boost.org for most recent version. * FILE regex_test.cpp - * VERSION 3.10 + * VERSION 3.11 * DESCRIPTION: Builds regression test program with default * locale and wide character tests. Also * instantiates all the templates in the library diff --git a/traits_class_ref.htm b/traits_class_ref.htm index 933d5746..b6ae1a99 100644 --- a/traits_class_ref.htm +++ b/traits_class_ref.htm @@ -19,7 +19,7 @@ HEIGHT="86" ALT="C++ Boost">

Regex++, Traits Class -Reference. (version 3.10, 18 April 2000) 

+Reference. (version 3.11, 18 April 2000) 
 Copyright (c) 1998-2000
 Dr John Maddock