reorganised regex config setup

[SVN r10064]
This commit is contained in:
John Maddock
2001-05-08 11:24:35 +00:00
parent fb81ff65fc
commit efd0ce56bc
53 changed files with 377 additions and 2346 deletions

View File

@ -13,7 +13,7 @@
<H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD> <H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD>
<TD WIDTH="50%" VALIGN="TOP"> <TD WIDTH="50%" VALIGN="TOP">
<H3 ALIGN="CENTER">Regex++, Appendices.</H3> <H3 ALIGN="CENTER">Regex++, Appendices.</H3>
<I><P ALIGN="CENTER">(version 3.10, 18 April 2000)</I> </P> <I><P ALIGN="CENTER">(version 3.11, 18 April 2000)</I> </P>
<I><PRE>Copyright (c) 1998-2000 <I><PRE>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

1025
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -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]) 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 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_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 <stdlib.h>
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_MSG_CHECKING(for default template parameter support)
AC_TRY_COMPILE( AC_TRY_COMPILE(
[ [
@ -304,44 +263,6 @@ int foo(const dummy<T>& )
[AC_MSG_RESULT(yes)], [AC_MSG_RESULT(yes)],
[AC_DEFINE(BOOST_RE_NO_PARTIAL_FUNC_SPEC, []) AC_MSG_RESULT(no)]) [AC_DEFINE(BOOST_RE_NO_PARTIAL_FUNC_SPEC, []) AC_MSG_RESULT(no)])
AC_MSG_CHECKING([for template friend functions])
AC_TRY_COMPILE(
[
#include <stdlib.h>
template <class T2>
void foo(T2 t);
template <class T>
struct dummy
{
template <class T2> friend void foo(T2);
private:
void foo2();
void foo3()const;
};
template <class T2>
void foo(T2 t)
{
dummy<T2> d1;
d1.foo2();
d1.foo3();
dummy<int> 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(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)]) AC_ARG_ENABLE(threads, [--disable-threads turns off multi-threading support (when available)])
@ -362,7 +283,6 @@ AC_TRY_COMPILE(
int i = GetVersion(); int i = GetVersion();
], ],
[iswin="true" [iswin="true"
AC_DEFINE(BOOST_RE_PLATFORM_WINDOWS, [])
AC_MSG_RESULT(yes)], AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no) [AC_MSG_RESULT(no)
enable_ms_windows="no"] enable_ms_windows="no"]
@ -438,21 +358,6 @@ enable_ms_windows="no"
fi fi
if test "$iswin" != "true"; then
AC_MSG_CHECKING(for MS DOS)
AC_TRY_COMPILE(
[
#include <dos.h>
],
[
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_MSG_CHECKING(for bool support)
AC_TRY_COMPILE( AC_TRY_COMPILE(
@ -570,7 +475,7 @@ fi
AC_ARG_ENABLE(member-templates, [--disable-member-templates turns off member template class and function support]) AC_ARG_ENABLE(member-templates, [--disable-member-templates turns off member template class and function support])
if test "$enable_member_templates" = "no"; then if test "$enable_member_templates" = "no"; then
AC_DEFINE(BOOST_RE_NO_MEMBER_TEMPLATES, []) AC_DEFINE(BOOST_NO_MEMBER_TEMPLATES, [])
else else
AC_MSG_CHECKING(for member template classes and functions) AC_MSG_CHECKING(for member template classes and functions)
@ -608,7 +513,7 @@ public:
fa = ia; fa = ia;
], ],
[AC_MSG_RESULT(yes)], [AC_MSG_RESULT(yes)],
[AC_DEFINE(BOOST_RE_NO_MEMBER_TEMPLATES,[]) [AC_DEFINE(BOOST_NO_MEMBER_TEMPLATES,[])
AC_MSG_RESULT(no)]) AC_MSG_RESULT(no)])
fi fi
@ -765,100 +670,6 @@ AC_DEFINE(BOOST_RE_THREADS, [])],
fi 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 T>
class alloc
{
public:
void* allocate(int);
void deallocate(void*);
alloc();
alloc(const alloc&);
template <class U>
alloc(const alloc<U>&) {}
alloc& operator=(const alloc&);
template <class U>
alloc& operator=(const alloc<U>&)
{ return *this; }
template <class U>
struct rebind
{
typedef alloc<U> other;
};
};
],
[
alloc<int> ia;
alloc<double> da(ia);
alloc<float> fa;
fa.allocate(5);
fa = ia;
alloc<int>::template rebind<double>::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 <stdlib.h>
template <class T>
class factorial
{
public:
factorial();
T operator()(T);
};
template <class T>
factorial<T>::factorial()
{
}
template <class T>
T factorial<T>::operator()(T t)
{
T result = 1;
for(T i = 1; i <= t; ++i)
{
result *= i;
}
return result;
}
template class factorial<int>;
template class factorial<short>;
],
[
],
[
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.]) AC_ARG_ENABLE(fastcall, [--disable-fastcall turns off use __fastcall and __stdcall.])
if test "$enable_fastcall" = "no" || test "$enable_ms_windows" != "no"; then if test "$enable_fastcall" = "no" || test "$enable_ms_windows" != "no"; then
AC_DEFINE(BOOST_RE_CALL, []) 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_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_ERROR([Sorry, you can't compile this library unless the standard library is in namespace std.])])
AC_MSG_CHECKING(for <iterator>)
AC_TRY_COMPILE(
[
#include <iterator>
],
[
],
[AC_MSG_RESULT(yes)
],
[AC_MSG_RESULT(no)
AC_DEFINE(BOOST_RE_NO_ITERATOR_H, [])
])
AC_MSG_CHECKING(for <algorithm>)
AC_TRY_COMPILE(
[
#include <algorithm>
#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 <algo>)
AC_TRY_COMPILE(
[
#include <algo>
],
[
],
[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 <memory>) AC_MSG_CHECKING(for <memory>)
AC_TRY_COMPILE( AC_TRY_COMPILE(
@ -983,7 +742,7 @@ AC_TRY_COMPILE(
template <class A> template <class A>
struct tester struct tester
{ {
typedef typename A::BOOST_RE_NESTED_TEMPLATE_DECL rebind<int> binder; typedef typename A::template rebind<int> binder;
typedef typename binder::other alloc_type; typedef typename binder::other alloc_type;
alloc_type a; alloc_type a;
tester(A al): a(al) {} tester(A al): a(al) {}
@ -994,7 +753,7 @@ std::allocator<double> d(a);
typedef std::allocator<char> alloc_type; typedef std::allocator<char> alloc_type;
alloc_type::BOOST_RE_NESTED_TEMPLATE_DECL rebind<int>::other o(a); alloc_type::template rebind<int>::other o(a);
tester<std::allocator<char> > t(a); tester<std::allocator<char> > t(a);
], ],
@ -1003,7 +762,7 @@ tester<std::allocator<char> > t(a);
[AC_MSG_RESULT(yes) [AC_MSG_RESULT(yes)
], ],
[AC_MSG_RESULT(no) [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); i = std::distance(j, k);
], ],
[AC_MSG_RESULT(yes) [AC_MSG_RESULT(yes)
AC_DEFINE(BOOST_RE_DISTANCE_T_1)
have_dist="yes" have_dist="yes"
], ],
[])
if test "$enable_stl" != "no" && test "$have_dist" != "yes"; then
AC_TRY_COMPILE(
[ [
#include <iterator> AC_MSG_RESULT(no)
#include "confdefs.h" AC_DEFINE(BOOST_NO_STD_DISTANCE)
])
],
[
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"])
fi
if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
AC_MSG_CHECKING(for standard iterator syntax)
AC_TRY_COMPILE(
[
#include <iterator>
#include "confdefs.h"
],
[
std::iterator<std::output_iterator_tag, char, std::ptrdiff_t, char*, char&> oi;
std::iterator<std::input_iterator_tag, char, std::ptrdiff_t, char*, char&> ii;
std::iterator<std::forward_iterator_tag, char, std::ptrdiff_t, char*, char&> fi;
std::iterator<std::bidirectional_iterator_tag, char, std::ptrdiff_t, char*, char&> bi;
std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&> 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 <iterator>
#include "confdefs.h"
],
[
std::iterator<std::output_iterator_tag, char, std::ptrdiff_t> oi;
std::iterator<std::input_iterator_tag, char, std::ptrdiff_t> ii;
std::iterator<std::forward_iterator_tag, char, std::ptrdiff_t> fi;
std::iterator<std::bidirectional_iterator_tag, char, std::ptrdiff_t> bi;
std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t> 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 <iterator>
#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 <iterator>
#include "confdefs.h"
],
[
std::input_iterator<char, std::ptrdiff_t> 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 <iterator>
#include "confdefs.h"
],
[
std::input_iterator<char> 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 <iterator>
#include "confdefs.h"
],
[
std::forward_iterator<int, std::ptrdiff_t> 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 <iterator>
#include "confdefs.h"
],
[
std::bidirectional_iterator<int, std::ptrdiff_t> 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 <iterator>
#include "confdefs.h"
],
[
std::random_access_iterator<int, std::ptrdiff_t> 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 if test "$enable_stl" != "no"; then
AC_MSG_CHECKING(for output iterator assignment) AC_MSG_CHECKING(for output iterator assignment)
@ -1697,5 +1258,6 @@ rm -f jm_opt.out

View File

@ -15,7 +15,7 @@
/* /*
* FILE jgrep.cpp * FILE jgrep.cpp
* VERSION 3.10 * VERSION 3.11
*/ */
#include <stdio.h> #include <stdio.h>

View File

@ -15,7 +15,7 @@
/* /*
* FILE jgrep.h * FILE jgrep.h
* VERSION 3.10 * VERSION 3.11
*/ */
#ifndef _JGREP_H #ifndef _JGREP_H

View File

@ -15,7 +15,7 @@
/* /*
* FILE main.cpp * FILE main.cpp
* VERSION 3.10 * VERSION 3.11
*/ */

View File

@ -13,7 +13,7 @@
<H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD> <H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD>
<TD WIDTH="50%" VALIGN="TOP"> <TD WIDTH="50%" VALIGN="TOP">
<H3 ALIGN="CENTER">Regex++, FAQ.</H3> <H3 ALIGN="CENTER">Regex++, FAQ.</H3>
<I><P ALIGN="CENTER">(version 3.10, 18 April 2000)</I> </P> <I><P ALIGN="CENTER">(version 3.11, 18 April 2000)</I> </P>
<I><PRE>Copyright (c) 1998-2000 <I><PRE>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -20,7 +20,7 @@
<H3> Regex++, Format String Reference.</H3> <H3> Regex++, Format String Reference.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.10, 18 April 2000)</I> <I>(version 3.11, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -20,7 +20,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h3 align="center">Regex++, <td valign="top" width="50%"><h3 align="center">Regex++,
RegEx Class Reference. </h3> RegEx Class Reference. </h3>
<p><i>(version 3.10, 18 April 2000)</i> </p> <p><i>(version 3.11, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-2000 <pre><i>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE cregex.cpp * FILE cregex.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares POSIX API functions * DESCRIPTION: Declares POSIX API functions
* + boost::RegEx high level wrapper. * + boost::RegEx high level wrapper.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex.h * FILE regex.h
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares POSIX API functions * DESCRIPTION: Declares POSIX API functions
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex.cpp * FILE regex.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares boost::reg_expression<> and associated * DESCRIPTION: Declares boost::reg_expression<> and associated
* functions and classes. This header is the main * functions and classes. This header is the main
* entry point for the template regex code. * entry point for the template regex code.
@ -105,9 +105,9 @@ public:
{ {
return static_cast<const regex_traits<wchar_t>*>(this)->translate(c, true); return static_cast<const regex_traits<wchar_t>*>(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<const regex_traits<wchar_t>*>(this)->lookup_classname(first, last); boost::uint_fast32_t result = static_cast<const regex_traits<wchar_t>*>(this)->lookup_classname(first, last);
if((result & base_type::char_class_upper) == base_type::char_class_upper) if((result & base_type::char_class_upper) == base_type::char_class_upper)
result |= base_type::char_class_alpha; result |= base_type::char_class_alpha;
return result; return result;
@ -242,7 +242,7 @@ struct re_literal : public re_syntax_base
struct re_set_long : public re_syntax_base struct re_set_long : public re_syntax_base
{ {
unsigned int csingles, cranges, cequivalents; unsigned int csingles, cranges, cequivalents;
jm_uintfast32_t cclasses; boost::uint_fast32_t cclasses;
bool isnot; bool isnot;
}; };
@ -523,7 +523,7 @@ public:
set_expression(first, last, f | regbase::use_except); set_expression(first, last, f | regbase::use_except);
return *this; return *this;
} }
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES #ifndef BOOST_NO_MEMBER_TEMPLATES
template <class ST, class SA> template <class ST, class SA>
unsigned int BOOST_RE_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regbase::normal) unsigned int BOOST_RE_CALL set_expression(const std::basic_string<charT, ST, SA>& 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 fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces);
void BOOST_RE_CALL move_offsets(re_detail::re_syntax_base* j, unsigned size); 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(const charT*& first, const charT* last);
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&); re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&);
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&); re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& 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); 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); 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<value_type> ()const operator std::basic_string<value_type> ()const
{ {
std::basic_string<value_type> result; std::basic_string<value_type> result;
unsigned len; unsigned len = boost::re_detail::distance((iterator)first, (iterator)second);
BOOST_RE_DISTANCE((iterator)first, (iterator)second, len);
result.reserve(len); result.reserve(len);
iterator i = first; iterator i = first;
while(i != second) while(i != second)
@ -778,8 +777,7 @@ struct sub_match
difference_type BOOST_RE_CALL length()const difference_type BOOST_RE_CALL length()const
{ {
difference_type n; difference_type n = boost::re_detail::distance((iterator)first, (iterator)second);
BOOST_RE_DISTANCE((iterator)first, (iterator)second, n);
return n; return n;
} }
}; };
@ -846,7 +844,7 @@ class match_results_base
{ {
public: public:
typedef Allocator alloc_type; typedef Allocator alloc_type;
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator) iterator_alloc; typedef typename boost::re_detail::rebind_allocator<iterator, Allocator>::type iterator_alloc;
typedef typename iterator_alloc::size_type size_type; typedef typename iterator_alloc::size_type size_type;
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
typedef typename std::iterator_traits<iterator>::difference_type difference_type; typedef typename std::iterator_traits<iterator>::difference_type difference_type;
@ -859,7 +857,7 @@ public:
typedef iterator iterator_type; typedef iterator iterator_type;
protected: protected:
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) c_alloc; typedef typename boost::re_detail::rebind_allocator<char, Allocator>::type c_alloc;
struct c_reference : public c_alloc struct c_reference : public c_alloc
{ {
@ -929,8 +927,7 @@ public:
const sub_match<iterator>& m = (*this)[sub]; const sub_match<iterator>& m = (*this)[sub];
if(m.matched == false) if(m.matched == false)
return 0; return 0;
difference_type n; difference_type n = boost::re_detail::distance((iterator)m.first, (iterator)m.second);
BOOST_RE_DISTANCE((iterator)m.first, (iterator)m.second, n);
return n; return n;
} }
@ -950,8 +947,7 @@ public:
const sub_match<iterator>& s = (*this)[sub]; const sub_match<iterator>& s = (*this)[sub];
if(s.matched == false) if(s.matched == false)
return -1; return -1;
difference_type n; difference_type n = boost::re_detail::distance((iterator)(ref->base), (iterator)(s.first));
BOOST_RE_DISTANCE((iterator)ref->base, (iterator)s.first, n);
return n; return n;
} }
@ -1270,13 +1266,13 @@ void BOOST_RE_CALL match_results_base<iterator, Allocator>::maybe_assign(const m
{ {
// //
// leftmost takes priority over longest: // leftmost takes priority over longest:
BOOST_RE_DISTANCE(base, p1->first, base1); base1 = boost::re_detail::distance(base, p1->first);
BOOST_RE_DISTANCE(base, p2->first, base2); base2 = boost::re_detail::distance(base, p2->first);
if(base1 < base2) return; if(base1 < base2) return;
if(base2 < base1) break; if(base2 < base1) break;
BOOST_RE_DISTANCE(p1->first, p1->second, len1); len1 = boost::re_detail::distance(p1->first, p1->second);
BOOST_RE_DISTANCE(p2->first, p2->second, len2); len2 = boost::re_detail::distance(p2->first, p2->second);
if((len1 != len2) || ((p1->matched == false) && (p2->matched == true))) if((len1 != len2) || ((p1->matched == false) && (p2->matched == true)))
break; break;
if((p1->matched == true) && (p2->matched == false)) if((p1->matched == true) && (p2->matched == false))

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE fileiter.hpp * FILE fileiter.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares various platform independent file and * DESCRIPTION: Declares various platform independent file and
* directory iterators, plus binary file input in * directory iterators, plus binary file input in
* the form of class map_file. * the form of class map_file.
@ -196,7 +196,7 @@ public:
friend class mapfile_iterator; 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; typedef mapfile::pointer internal_pointer;
internal_pointer* node; 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* _root;
char* _path; char* _path;
@ -333,6 +333,12 @@ class BOOST_RE_IX_DECL file_iterator : public BOOST_RE_INPUT_ITERATOR(const char
file_iterator_ref* ref; file_iterator_ref* ref;
public: 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();
file_iterator(const char* wild); file_iterator(const char* wild);
~file_iterator(); ~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* _root;
char* _path; char* _path;
@ -374,6 +380,12 @@ class BOOST_RE_IX_DECL directory_iterator : public BOOST_RE_INPUT_ITERATOR(const
file_iterator_ref* ref; file_iterator_ref* ref;
public: 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();
directory_iterator(const char* wild); directory_iterator(const char* wild);
~directory_iterator(); ~directory_iterator();

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_compile.hpp * FILE regex_compile.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares reg_expression<> member functions. This is * DESCRIPTION: Declares reg_expression<> member functions. This is
* an internal header file, do not include directly. * an internal header file, do not include directly.
*/ */
@ -644,7 +644,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
{ {
re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator()); re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator());
re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator()); re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator());
re_detail::jstack<jm_uintfast32_t, Allocator> classes(64, data.allocator()); re_detail::jstack<boost::uint_fast32_t, Allocator> classes(64, data.allocator());
re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator()); re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator());
classes.push(cls); classes.push(cls);
if(dat) if(dat)
@ -660,7 +660,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
{ {
re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator()); re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator());
re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator()); re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator());
re_detail::jstack<jm_uintfast32_t, Allocator> classes(64, data.allocator()); re_detail::jstack<boost::uint_fast32_t, Allocator> classes(64, data.allocator());
re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator()); re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator());
bool has_digraphs = false; bool has_digraphs = false;
jm_assert(traits_inst.syntax_type((traits_size_type)(traits_uchar_type)*first) == traits_type::syntax_open_set); 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<charT, traits, Allocator
fail(REG_ERANGE); fail(REG_ERANGE);
return 0; return 0;
} }
jm_uintfast32_t id = traits_inst.lookup_classname(base+2, first-2); boost::uint_fast32_t id = traits_inst.lookup_classname(base+2, first-2);
if(_flags & regbase::icase) if(_flags & regbase::icase)
{ {
if((id == traits_type::char_class_upper) || (id == traits_type::char_class_lower)) if((id == traits_type::char_class_upper) || (id == traits_type::char_class_lower))
@ -973,13 +973,13 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
} }
template <class charT, class traits, class Allocator> template <class charT, class traits, class Allocator>
re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&) re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&)
{ {
size_type base = data.size(); size_type base = data.size();
data.extend(sizeof(re_detail::re_set_long)); data.extend(sizeof(re_detail::re_set_long));
unsigned int csingles = 0; unsigned int csingles = 0;
unsigned int cranges = 0; unsigned int cranges = 0;
jm_uintfast32_t cclasses = 0; boost::uint_fast32_t cclasses = 0;
unsigned int cequivalents = 0; unsigned int cequivalents = 0;
bool nocollate_state = flags() & regbase::nocollate; bool nocollate_state = flags() & regbase::nocollate;
@ -1011,7 +1011,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
// be sure... // be sure...
// delay throw to later: // delay throw to later:
#ifdef __BORLANDC__ #ifdef __BORLANDC__
jm_uintfast32_t f = _flags; boost::uint_fast32_t f = _flags;
_flags &= ~regbase::use_except; _flags &= ~regbase::use_except;
#endif #endif
fail(REG_ERANGE); fail(REG_ERANGE);
@ -1052,7 +1052,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
} }
template <class charT, class traits, class Allocator> template <class charT, class traits, class Allocator>
re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&) re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&)
{ {
re_detail::re_set* dat = (re_detail::re_set*)data.extend(sizeof(re_detail::re_set)); 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)); std::memset(dat, 0, sizeof(re_detail::re_set));
@ -1084,7 +1084,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
// be sure... // be sure...
// delay throw to later: // delay throw to later:
#ifdef __BORLANDC__ #ifdef __BORLANDC__
jm_uintfast32_t f = _flags; boost::uint_fast32_t f = _flags;
_flags &= ~regbase::use_except; _flags &= ~regbase::use_except;
#endif #endif
fail(REG_ERANGE); fail(REG_ERANGE);
@ -1117,7 +1117,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
equivalents.pop(); equivalents.pop();
} }
jm_uintfast32_t flags = 0; boost::uint_fast32_t flags = 0;
while(classes.empty() == false) while(classes.empty() == false)
{ {
flags |= classes.peek(); flags |= classes.peek();
@ -1159,7 +1159,7 @@ inline
template <class charT, class traits, class Allocator> template <class charT, class traits, class Allocator>
void BOOST_RE_CALL reg_expression<charT, traits, Allocator>::fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces) void BOOST_RE_CALL reg_expression<charT, traits, Allocator>::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<bool, Allocator>::type b_alloc;
register unsigned char* base = (unsigned char*)b; register unsigned char* base = (unsigned char*)b;
register re_detail::re_syntax_base* ptr = b; register re_detail::re_syntax_base* ptr = b;

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_config.hpp * FILE regex_config.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: auto-configure options for regular expression code. * DESCRIPTION: auto-configure options for regular expression code.
*/ */
@ -50,6 +50,10 @@ full list of macros and their usage.
#include <clocale> #include <clocale>
#include <string> #include <string>
#include <boost/smart_ptr.hpp> #include <boost/smart_ptr.hpp>
#ifdef __CYGWIN__
#include <sys/types.h>
#endif
#include <boost/cstdint.hpp>
#else #else
// //
// C build, // C build,
@ -85,23 +89,17 @@ full list of macros and their usage.
#if __BORLANDC__ < 0x500 #if __BORLANDC__ < 0x500
#define BOOST_RE_NO_NAMESPACES #define BOOST_RE_NO_NAMESPACES
#define BOOST_RE_NO_BOOL #define BOOST_RE_NO_BOOL
#define BOOST_RE_NO_MUTABLE
#endif #endif
// versions prior to 0x530 not supported: // versions prior to 0x530 not supported:
#if __BORLANDC__ < 0x540 #if __BORLANDC__ < 0x540
#define BOOST_RE_NO_MEMBER_TEMPLATES
// inline contructors exhibit strange behaviour // inline contructors exhibit strange behaviour
// under Builder 3 and C++ 5.x when throwing exceptions // under Builder 3 and C++ 5.x when throwing exceptions
#define INLINE_EXCEPTION_BUG #define INLINE_EXCEPTION_BUG
#define BOOST_RE_NESTED_TEMPLATE_DECL
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC #define BOOST_RE_NO_PARTIAL_FUNC_SPEC
#define BOOST_RE_NO_STRING_DEF_ARGS #define BOOST_RE_NO_STRING_DEF_ARGS
#define BOOST_RE_NO_TYPEINFO // bad_cast etc not in namespace std. #define BOOST_RE_NO_TYPEINFO // bad_cast etc not in namespace std.
#endif #endif
//
// Builder 4 seems to have broken template friend support:
#define BOOST_RE_NO_TEMPLATE_FRIEND
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551) #if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
// problems with std::basic_string and dll RTL: // problems with std::basic_string and dll RTL:
@ -122,12 +120,6 @@ full list of macros and their usage.
#error exception handling support required #error exception handling support required
#endif #endif
#ifdef _Windows
#define BOOST_RE_PLATFORM_WINDOWS
#else
#define BOOST_RE_PLATFORM_DOS
#endif
#ifndef __WIN32__ #ifndef __WIN32__
#define BOOST_RE_CALL #define BOOST_RE_CALL
#define BOOST_RE_CCALL #define BOOST_RE_CCALL
@ -136,8 +128,6 @@ full list of macros and their usage.
#define BOOST_RE_CCALL __stdcall #define BOOST_RE_CCALL __stdcall
#endif #endif
#define BOOST_RE_INT64t __int64
#define BOOST_RE_IMM64(val) val##i64
#define BOOST_RE_NO_CAT #define BOOST_RE_NO_CAT
// broken wide character support: // broken wide character support:
#define BOOST_RE_NO_SWPRINTF #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_NAMESPACES
#define BOOST_RE_NO_DEFAULT_PARAM #define BOOST_RE_NO_DEFAULT_PARAM
#define BOOST_RE_NO_BOOL #define BOOST_RE_NO_BOOL
#define BOOST_RE_NO_MUTABLE
#define BOOST_RE_NO_WCSTRING #define BOOST_RE_NO_WCSTRING
#define BOOST_RE_NO_LOCALE_H #define BOOST_RE_NO_LOCALE_H
#define BOOST_RE_NO_TEMPLATE_RETURNS #define BOOST_RE_NO_TEMPLATE_RETURNS
#define BOOST_RE_NO_INT64
#endif #endif
#if BOOST_MSVC < 1200 #if BOOST_MSVC < 1200
#define BOOST_RE_NESTED_TEMPLATE_DECL
#define BOOST_RE_NO_STRING_DEF_ARGS #define BOOST_RE_NO_STRING_DEF_ARGS
#endif #endif
@ -196,16 +183,11 @@ full list of macros and their usage.
#error exception handling support required #error exception handling support required
#endif #endif
#define BOOST_RE_PLATFORM_WINDOWS
// //
// no support for nested template classes yet.... // no support for nested template classes yet....
// although this part of VC6 is badly documented // 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_CAT
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC #define BOOST_RE_NO_PARTIAL_FUNC_SPEC
#define BOOST_RE_NO_TEMPLATE_FRIEND
#define BOOST_RE_NO_SWPRINTF #define BOOST_RE_NO_SWPRINTF
#ifdef _MT #ifdef _MT
@ -238,13 +220,8 @@ full list of macros and their usage.
#ifdef __GNUC__ #ifdef __GNUC__
#if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 91)) #if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 91))
#define BOOST_RE_NO_NAMESPACES #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_PARTIAL_FUNC_SPEC
#define BOOST_RE_NO_TEMPLATE_FRIEND
#endif #endif
#define BOOST_RE_INT64t long long
#define BOOST_RE_IMM64(val) val##LL
#ifdef _WIN32 #ifdef _WIN32
/* there seems to be a problem with <windows.h> in gcc */ /* there seems to be a problem with <windows.h> in gcc */
@ -254,7 +231,6 @@ full list of macros and their usage.
#define BOOST_RE_NO_TEMPLATE_SWITCH_MERGE #define BOOST_RE_NO_TEMPLATE_SWITCH_MERGE
#endif #endif
#define BOOST_RE_NO_CAT #define BOOST_RE_NO_CAT
#define BOOST_RE_NESTED_TEMPLATE_DECL
#define BOOST_RE_NO_SWPRINTF #define BOOST_RE_NO_SWPRINTF
#include <string> #include <string>
#ifdef __BASTRING__ #ifdef __BASTRING__
@ -278,15 +254,9 @@ full list of macros and their usage.
#ifdef __SUNPRO_CC #ifdef __SUNPRO_CC
#if (__SUNPRO_CC < 0x500) #if (__SUNPRO_CC < 0x500)
#define BOOST_RE_NO_NAMESPACES #define BOOST_RE_NO_NAMESPACES
#define BOOST_RE_NO_MUTABLE
#define BOOST_RE_NO_MEMBER_TEMPLATES
#define BOOST_RE_OLD_IOSTREAM #define BOOST_RE_OLD_IOSTREAM
#endif #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_SWPRINTF
#define BOOST_RE_NO_TEMPLATE_FRIEND
#define BOOST_RE_NO_LOCALE_H #define BOOST_RE_NO_LOCALE_H
#endif #endif
@ -296,20 +266,13 @@ full list of macros and their usage.
# if (__HP_aCC < 31400) # if (__HP_aCC < 31400)
// non-conformant aCC: // non-conformant aCC:
#define BOOST_RE_NO_NAMESPACES #define BOOST_RE_NO_NAMESPACES
#define BOOST_RE_NO_MUTABLE
#define BOOST_RE_OLD_IOSTREAM #define BOOST_RE_OLD_IOSTREAM
#define BOOST_RE_NESTED_TEMPLATE_DECL #define BOOST_NO_STD_ALLOCATOR
#define BOOST_RE_NO_TEMPLATE_FRIEND
#else #else
#if !defined(_NAMESPACE_STD) #if !defined(_NAMESPACE_STD)
#define BOOST_RE_OLD_IOSTREAM #define BOOST_RE_OLD_IOSTREAM
#endif #endif
#define BOOST_RE_NESTED_TEMPLATE_DECL template
#endif #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_SWPRINTF
#define BOOST_RE_NO_CAT #define BOOST_RE_NO_CAT
#endif #endif
@ -362,20 +325,6 @@ full list of macros and their usage.
#define BOOST_RE_MAYBE_ACCESS_SPEC #define BOOST_RE_MAYBE_ACCESS_SPEC
#endif #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 #ifndef BOOST_RE_IX_DECL
#define BOOST_RE_IX_DECL #define BOOST_RE_IX_DECL
#endif #endif
@ -432,7 +381,7 @@ typedef unsigned long jm_uintfast32_t;
#define BOOST_RE_NO_WCSTRING #define BOOST_RE_NO_WCSTRING
#endif #endif
#if !defined(__STL_MEMBER_TEMPLATE_CLASSES) || !defined(__STL_MEMBER_TEMPLATES) #if !defined(__STL_MEMBER_TEMPLATE_CLASSES) || !defined(__STL_MEMBER_TEMPLATES)
#define BOOST_RE_NO_MEMBER_TEMPLATES #define BOOST_NO_MEMBER_TEMPLATES
#endif #endif
#define BOOST_RE_NO_TYPEINFO #define BOOST_RE_NO_TYPEINFO
@ -449,30 +398,14 @@ typedef unsigned long jm_uintfast32_t;
#define BOOST_RE_ALGO_INCLUDED #define BOOST_RE_ALGO_INCLUDED
#define BOOST_RE_DISTANCE(i, j, n) do { n = 0; std::distance(i, j, n); } while(false) #if !defined( __STL_CLASS_PARTIAL_SPECIALIZATION) || !defined(__SGI_STL_PORT)
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator #define BOOST_NO_STD_DISTANCE
#define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D> #endif
#define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
#define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
#define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
#if defined(__STL_USE_STD_ALLOCATORS) || (defined(__SGI_STL_PORT ) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(__STL_MEMBER_TEMPLATES)) #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 */ /* 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<x>::other(inst)
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
#else /* __STL_USE_STD_ALLOCATORS */ #else /* __STL_USE_STD_ALLOCATORS */
#define BOOST_RE_OLD_ALLOCATORS #define BOOST_NO_STD_ALLOCATOR
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
#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
#endif /* __STL_USE_STD_ALLOCATORS */ #endif /* __STL_USE_STD_ALLOCATORS */
#define BOOST_RE_STL_DONE #define BOOST_RE_STL_DONE
@ -496,7 +429,7 @@ typedef unsigned long jm_uintfast32_t;
#endif #endif
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(RWSTD_NO_MEM_CLASS_TEMPLATES) #if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(RWSTD_NO_MEM_CLASS_TEMPLATES)
#define BOOST_RE_NO_MEMBER_TEMPLATES #define BOOST_NO_MEMBER_TEMPLATES
#endif #endif
#ifdef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE #ifdef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
#define BOOST_RE_NO_TEMPLATE_RETURNS #define BOOST_RE_NO_TEMPLATE_RETURNS
@ -506,10 +439,6 @@ typedef unsigned long jm_uintfast32_t;
#error exception handling support required #error exception handling support required
#endif #endif
#ifdef RWSTD_NO_MUTABLE
#define BOOST_RE_NO_MUTABLE
#endif
#ifdef RWSTD_NO_DEFAULT_TEMPLATES #ifdef RWSTD_NO_DEFAULT_TEMPLATES
#define BOOST_RE_NO_DEFAULT_PARAM #define BOOST_RE_NO_DEFAULT_PARAM
#define BOOST_RE_NO_TRICKY_DEFAULT_PARAM #define BOOST_RE_NO_TRICKY_DEFAULT_PARAM
@ -525,57 +454,20 @@ typedef unsigned long jm_uintfast32_t;
#define BOOST_RE_NO_BOOL #define BOOST_RE_NO_BOOL
#endif #endif
#if BOOST_RWSTD_VER > 0x020000 #if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC #define BOOST_NO_STD_DISTANCE
#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<std::output_iterator_tag, T, D, T*, T&>
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
#define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
#define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
#define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
#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<T>
#else
#define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
#endif
#define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
#define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
#define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
#endif #endif
#include <memory> #include <memory>
#if defined(_RWSTD_ALLOCATOR) && !defined(BOOST_RE_NO_MEMORY_H) && !defined(BOOST_RE_NO_MEMBER_TEMPLATES) #if !defined(_RWSTD_ALLOCATOR)
/* new style allocator */
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
#else
/* /*
// old style allocator // old style allocator
// this varies a great deal between versions, and there is no way // this varies a great deal between versions, and there is no way
// that I can tell of differentiating between them, so use our // that I can tell of differentiating between them, so use our
// own default allocator... // own default allocator...
*/ */
#define BOOST_RE_OLD_ALLOCATORS #define BOOST_NO_STD_ALLOCATOR
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
#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
#endif #endif
#define BOOST_RE_STL_DONE #define BOOST_RE_STL_DONE
@ -583,57 +475,14 @@ typedef unsigned long jm_uintfast32_t;
#define BOOST_RE_NO_OI_ASSIGN #define BOOST_RE_NO_OI_ASSIGN
#endif #endif
#elif defined (ITERATOR_H)
/* HP STL */
#define BOOST_RE_NO_LOCALE_H
#include <algo.h>
#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<T, D>
#define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
#define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
#define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
/* 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<x, y>(inst)
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
#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)) #elif (defined(BOOST_MSVC) || defined(__ICL)) && (defined(_YVALS) || defined(_CPPLIB_VER))
/* VC6 or Intel C++, with Dinkum STL */ /* VC6 or Intel C++, with Dinkum STL */
#define BOOST_RE_NO_OI_ASSIGN #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<std::output_iterator_tag, T, D>
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D>
#define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D>
#define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D>
#define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D>
/* MS's allocators are rather ambiguous about their properties /* MS's allocators are rather ambiguous about their properties
at least as far as MSDN is concerned, so play safe: */ at least as far as MSDN is concerned, so play safe: */
#define BOOST_RE_OLD_ALLOCATORS #define BOOST_NO_STD_ALLOCATOR
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
#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_STL_DONE #define BOOST_RE_STL_DONE
#ifndef _CPPLIB_VER #ifndef _CPPLIB_VER
@ -650,59 +499,12 @@ typedef unsigned long jm_uintfast32_t;
/* unknown STL version /* unknown STL version
try the defaults: */ 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<std::output_iterator_tag, T, D, T*, T&>
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
#define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
#define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
#define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
#endif /* <iterator> config */ #endif /* <iterator> config */
#else /* no <iterator> 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<T>
#define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#endif #endif
/* now do allocator if not already done */ /* 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<x, y>(inst)
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
#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<x>::other(inst)
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
#endif
#endif
#endif // BOOST_RE_AUTO_CONFIGURE #endif // BOOST_RE_AUTO_CONFIGURE
@ -738,12 +540,6 @@ typedef unsigned long jm_uintfast32_t;
/* compiler configuration goes here: */ /* 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) #if defined( BOOST_RE_NO_BOOL) && !defined(bool)
#define bool int #define bool int
#define true 1 #define true 1
@ -766,6 +562,9 @@ typedef unsigned long jm_uintfast32_t;
#define BOOST_RE_NO_STRING_DEF_ARGS #define BOOST_RE_NO_STRING_DEF_ARGS
#endif #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: */ /* add our class def's if they are needed: */
@ -834,7 +633,7 @@ public:
const Allocator& BOOST_RE_CALL instance()const { return *this; } const Allocator& BOOST_RE_CALL instance()const { return *this; }
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES #ifndef BOOST_NO_MEMBER_TEMPLATES
template <class U> template <class U>
struct rebind struct rebind
@ -887,7 +686,7 @@ public:
::operator delete(p); ::operator delete(p);
} }
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES #ifndef BOOST_NO_MEMBER_TEMPLATES
template <class U> template <class U>
struct rebind struct rebind
{ {
@ -935,15 +734,39 @@ inline bool BOOST_RE_CALL boolify(I val)
#endif #endif
#endif #endif
template <class T, class A>
struct rebind_allocator
{
#ifdef BOOST_NO_STD_ALLOCATOR
typedef re_alloc_binder<T,A> type;
#else
typedef typename A::template rebind<T> binder;
typedef typename binder::other type;
#endif
};
#ifdef BOOST_NO_STD_DISTANCE
template <class T>
std::ptrdiff_t distance(const T& x, const T& y)
{ return y - x; }
#else
using std::distance;
#endif
} // namespace re_detail } // 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 } // 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 <memory>
#define BOOST_RE_DEF_ALLOC(T) std::allocator<T>
#define BOOST_RE_DEF_ALLOC_PARAM(T) BOOST_RE_TRICKY_DEFAULT_PARAM(std::allocator<T>)
#endif
#ifdef __GNUC__ #ifdef __GNUC__
#define INLINE_EXCEPTION_BUG #define INLINE_EXCEPTION_BUG
#endif #endif
@ -1022,11 +845,6 @@ public:
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#pragma message "macro allocator: " BOOST_RE_DEF_ALLOC_PARAM(wchar_t) #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 #ifdef BOOST_RE_LOCALE_CPP
#pragma message "locale support enabled" #pragma message "locale support enabled"
#endif #endif
@ -1275,5 +1093,6 @@ namespace std{

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_cstring.hpp * FILE regex_cstring.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: This is an internal header file, do not include directly. * DESCRIPTION: This is an internal header file, do not include directly.
* String support and helper functions, for regular * String support and helper functions, for regular
* expression library. * expression library.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_format.hpp * FILE regex_format.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Provides formatting output routines for search and replace * DESCRIPTION: Provides formatting output routines for search and replace
* operations. Note this is an internal header file included * operations. Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_kmp.hpp * FILE regex_kmp.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Provides Knuth Morris Pratt search operations. * DESCRIPTION: Provides Knuth Morris Pratt search operations.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.
@ -53,17 +53,17 @@ struct kmp_info
template <class charT, class Allocator> template <class charT, class Allocator>
void kmp_free(kmp_info<charT>* pinfo, const Allocator& a) void kmp_free(kmp_info<charT>* pinfo, const Allocator& a)
{ {
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) atype; typedef typename boost::re_detail::rebind_allocator<char, Allocator>::type atype;
atype(a).deallocate((char*)pinfo, pinfo->size); atype(a).deallocate((char*)pinfo, pinfo->size);
} }
template <class iterator, class charT, class Trans, class Allocator> template <class iterator, class charT, class Trans, class Allocator>
kmp_info<charT>* kmp_compile(iterator first, iterator last, charT, Trans translate, const Allocator& a) kmp_info<charT>* 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<char, Allocator>::type atype;
int i, j, m; int i, j, m;
i = 0; i = 0;
BOOST_RE_DISTANCE(first, last, m); m = boost::re_detail::distance(first, last);
++m; ++m;
unsigned int size = sizeof(kmp_info<charT>) + sizeof(int)*m + sizeof(charT)*m; unsigned int size = sizeof(kmp_info<charT>) + sizeof(int)*m + sizeof(charT)*m;
--m; --m;

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_libary_include.hpp * FILE regex_libary_include.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers. * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_match.hpp * FILE regex_match.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Regular expression matching algorithms. * DESCRIPTION: Regular expression matching algorithms.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.
@ -150,8 +150,8 @@ template <class iterator, class Allocator>
class _priv_match_data class _priv_match_data
{ {
public: public:
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(int, Allocator) i_alloc; typedef typename boost::re_detail::rebind_allocator<int, Allocator>::type i_alloc;
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator) it_alloc; typedef typename boost::re_detail::rebind_allocator<iterator, Allocator>::type it_alloc;
match_results_base<iterator, Allocator> temp_match; match_results_base<iterator, Allocator> temp_match;
// failure stacks: // failure stacks:
@ -209,12 +209,10 @@ void _priv_match_data<iterator, Allocator>::free()
{ {
if(caccumulators) if(caccumulators)
{ {
//REBIND_INSTANCE(int, Allocator, temp_match.allocator()).deallocate(accumulators, caccumulators);
i_alloc temp1(temp_match.allocator()); i_alloc temp1(temp_match.allocator());
temp1.deallocate(accumulators, caccumulators); temp1.deallocate(accumulators, caccumulators);
for(unsigned i = 0; i < caccumulators; ++i) for(unsigned i = 0; i < caccumulators; ++i)
jm_destroy(loop_starts + i); jm_destroy(loop_starts + i);
//REBIND_INSTANCE(iterator, Allocator, temp_match.allocator()).deallocate(loop_starts, caccumulators);
it_alloc temp2(temp_match.allocator()); it_alloc temp2(temp_match.allocator());
temp2.deallocate(loop_starts, caccumulators); temp2.deallocate(loop_starts, caccumulators);
} }

View File

@ -10,21 +10,6 @@
/* BOOST_NO_STDC_NAMESPACE C library not in namespace std */ /* BOOST_NO_STDC_NAMESPACE C library not in namespace std */
/* #define BOOST_NO_STDC_NAMESPACE */ /* #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 */ /* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */
/* #define BOOST_RE_PLATFORM_W32 */ /* #define BOOST_RE_PLATFORM_W32 */
@ -49,8 +34,8 @@
/* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */ /* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */
/* #define BOOST_RE_NO_WSPRINTF */ /* #define BOOST_RE_NO_WSPRINTF */
/* BOOST_RE_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */ /* BOOST_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */
/* #define BOOST_RE_NO_MEMBER_TEMPLATES */ /* #define BOOST_NO_MEMBER_TEMPLATES */
/* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */ /* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */
/* #define BOOST_RE_NO_TEMPLATE_RETURNS */ /* #define BOOST_RE_NO_TEMPLATE_RETURNS */
@ -58,25 +43,6 @@
/* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */ /* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */
/* #define BOOST_RE_NO_PARTIAL_FUNC_SPEC */ /* #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 /* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style
message categories (catopen catgets catclose). */ message categories (catopen catgets catclose). */
/* #define BOOST_RE_NO_CAT */ /* #define BOOST_RE_NO_CAT */
@ -85,15 +51,6 @@
the current translation mode. */ the current translation mode. */
/* #define BOOST_RE_THREADS */ /* #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<T>"
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 */ /* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */
/* #define BOOST_RE_NO_TEMPLATE_MERGE */ /* #define BOOST_RE_NO_TEMPLATE_MERGE */
@ -127,11 +84,11 @@
/* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */ /* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */
/* #define BOOST_RE_NO_ITERATOR_H */ /* #define BOOST_RE_NO_ITERATOR_H */
/* BOOST_RE_NO_MEMORY_H Define if <memory> does not fully comply with the /* BOOST_NO_STD_ALLOCATOR Define if <memory> does not fully comply with the
latest standard, and is not auto-recognised, latest standard, and is not auto-recognised,
that means nested template classes that means nested template classes
which hardly any compilers support at present. */ 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 /* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard
<locale> header available. */ <locale> header available. */
@ -154,267 +111,14 @@
/* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */ /* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */
/* #define BOOST_RE_OLD_IOSTREAM */ /* #define BOOST_RE_OLD_IOSTREAM */
/* BOOST_RE_DISTANCE_T For std::distance: /* BOOST_NO_STD_DISTANCE If std::distance is not present or non-standard */
0 = NA /* #define BOOST_NO_STD_DISTANCE */
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<std::tag_type, T, D, T*, T&>
2 = std::iterator<std::tag_type, T, D> */
/* #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<std::output_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::output_iterator_tag, T, D>
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<std::input_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::input_iterator_tag, T, D>
3 = std::input_iterator<T, D>
4 = std::input_iterator<T> */
/* #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<std::forward_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::forward_iterator_tag, T, D>
3 = std::forward_iterator<T, D> */
/* #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<std::bidirectional_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::bidirectional_iterator_tag, T, D>
3 = std::bidirectional_iterator<T, D> */
/* #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<std::random_access_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::random_access_iterator_tag, T, D>
3 = std::random_access_iterator<T, D> */
/* #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_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and /* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and
front_insert_iterator<> do not have assignment operators */ front_insert_iterator<> do not have assignment operators */
/* #define BOOST_RE_NO_OI_ASSIGN */ /* #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<T>
#elif defined(BOOST_RE_OI_T_1)
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_OI_T_2)
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D>
#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<T>
#elif defined(BOOST_RE_II_T_1)
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_II_T_2)
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D>
#elif defined(BOOST_RE_II_T_3)
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
#elif defined(BOOST_RE_II_T_4)
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T>
#else
syntax error
#endif
#ifdef BOOST_RE_FI_T_0
# define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#elif defined(BOOST_RE_FI_T_1)
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_FI_T_2)
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D>
#elif defined(BOOST_RE_FI_T_3)
# define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
#else
syntax error
#endif
#ifdef BOOST_RE_BI_T_0
# define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#elif defined(BOOST_RE_BI_T_1)
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_BI_T_2)
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D>
#elif defined(BOOST_RE_BI_T_3)
# define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
#else
syntax error
#endif
#ifdef BOOST_RE_RI_T_0
# define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#elif defined(BOOST_RE_RI_T_1)
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_RI_T_2)
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D>
#elif defined(BOOST_RE_RI_T_3)
# define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
#else
syntax error
#endif
#include <stdexcept> #include <stdexcept>
#ifndef BOOST_RE_NO_ITERATOR_H #ifndef BOOST_RE_NO_ITERATOR_H
@ -426,24 +130,6 @@ syntax error
#endif #endif
#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<x, y>(inst)
#define REBIND_TYPE(x, y) re_alloc_binder<x, y>
#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 <memory>
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
#endif
#endif // BOOST_RE_AUTO_CONFIGURE #endif // BOOST_RE_AUTO_CONFIGURE

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_raw_buffer.hpp * FILE regex_raw_buffer.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Raw character buffer for regex code. * DESCRIPTION: Raw character buffer for regex code.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.
@ -109,7 +109,7 @@ class raw_storage
{ {
public: public:
typedef Allocator allocator_type; 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<unsigned char, allocator_type>::type alloc_inst_type;
typedef typename alloc_inst_type::size_type size_type; typedef typename alloc_inst_type::size_type size_type;
typedef typename alloc_inst_type::pointer pointer; typedef typename alloc_inst_type::pointer pointer;
private: private:

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_split.hpp * FILE regex_split.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Implements regex_split and associated functions. * DESCRIPTION: Implements regex_split and associated functions.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_stack.hpp * FILE regex_stack.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Implements customised internal regex stacks. * DESCRIPTION: Implements customised internal regex stacks.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.
@ -52,8 +52,8 @@ template <class T, class Allocator BOOST_RE_DEF_ALLOC_PARAM(T) >
class jstack class jstack
{ {
private: private:
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, Allocator) allocator_type; typedef typename boost::re_detail::rebind_allocator<unsigned char, Allocator>::type allocator_type;
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(T, Allocator) T_alloc_type; typedef typename boost::re_detail::rebind_allocator<T, Allocator>::type T_alloc_type;
typedef typename T_alloc_type::size_type size_type; typedef typename T_alloc_type::size_type size_type;
typedef T value_type; typedef T value_type;
struct node struct node

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_synch.hpp * FILE regex_synch.hpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Thread synchronisation for regex code. * DESCRIPTION: Thread synchronisation for regex code.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE pattern_except.cpp * FILE pattern_except.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares pattern-matching exception classes. * DESCRIPTION: Declares pattern-matching exception classes.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex.cpp * FILE regex.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Declares regular expression traits classes. * DESCRIPTION: Declares regular expression traits classes.
*/ */
@ -164,7 +164,7 @@ protected:
static unsigned short class_map[map_size]; static unsigned short class_map[map_size];
static char lower_case_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 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_ctype();
static void BOOST_RE_CALL do_update_collate(); static void BOOST_RE_CALL do_update_collate();
@ -213,7 +213,7 @@ public:
return false; 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); 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(char c);
static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix); 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); std::string s(first, last);
return do_lookup_class(s.c_str()); return do_lookup_class(s.c_str());
@ -293,7 +293,7 @@ public:
static bool BOOST_RE_CALL is_combining(wchar_t c) static bool BOOST_RE_CALL is_combining(wchar_t c)
{ return re_detail::is_combining(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)); 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(wchar_t c);
static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix); 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<wchar_t>& s, const wchar_t* first, const wchar_t* last); static bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& 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 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); static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
private: 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 free();
static void BOOST_RE_CALL init(); static void BOOST_RE_CALL init();
static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last); static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last);
@ -369,7 +369,7 @@ protected:
static unsigned short class_map[map_size]; static unsigned short class_map[map_size];
static char lower_case_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 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_free();
static void BOOST_RE_CALL do_init(); static void BOOST_RE_CALL do_init();
@ -420,7 +420,7 @@ public:
return false; 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); 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(char c);
static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix); 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); std::string s(first, last);
return do_lookup_class(s.c_str()); return do_lookup_class(s.c_str());
@ -490,7 +490,7 @@ public:
static bool BOOST_RE_CALL is_combining(wchar_t c) static bool BOOST_RE_CALL is_combining(wchar_t c)
{ return re_detail::is_combining(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)); 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(wchar_t c);
static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix); 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<wchar_t>& s, const wchar_t* first, const wchar_t* last); static bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& 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); static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
private: 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<wchar_t>& out, const wchar_t* first, const wchar_t* last); static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last);
static w32_regex_traits<wchar_t> init_; static w32_regex_traits<wchar_t> init_;
static wchar_t BOOST_RE_CALL wtolower(wchar_t c); static wchar_t BOOST_RE_CALL wtolower(wchar_t c);
@ -640,7 +640,7 @@ public:
return false; 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<char>::mask)(f & char_class_all_base), c)) if(pctype->is((std::ctype<char>::mask)(f & char_class_all_base), c))
return true; return true;
@ -654,7 +654,7 @@ public:
int BOOST_RE_CALL toi(char c)const; int BOOST_RE_CALL toi(char c)const;
int BOOST_RE_CALL toi(const char*& first, const char* last, int radix)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; 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; 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) static bool BOOST_RE_CALL is_combining(wchar_t c)
{ return re_detail::is_combining(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<wchar_t>::mask)(f & char_class_all_base), c)) if(pctype->is((std::ctype<wchar_t>::mask)(f & char_class_all_base), c))
return true; return true;
@ -740,7 +740,7 @@ public:
int BOOST_RE_CALL toi(wchar_t c)const; 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; 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<wchar_t>& s, const wchar_t* first, const wchar_t* last)const; bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last)const;
std::string BOOST_RE_CALL error_string(unsigned id)const; std::string BOOST_RE_CALL error_string(unsigned id)const;

View File

@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h3 align="center">Regex++, <td valign="top" width="50%"><h3 align="center">Regex++,
Index.</h3> Index.</h3>
<p><i>(version 3.10, 18 April 2000)</i> </p> <p><i>(version 3.11, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-2000 <pre><i>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h3 align="center">Regex++, <td valign="top" width="50%"><h3 align="center">Regex++,
Introduction.</h3> Introduction.</h3>
<p><i>(version 3.10, 18 April 2000)</i> </p> <p><i>(version 3.11, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-2000 <pre><i>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock
@ -410,7 +410,7 @@ run one of the makefiles described above.</p>
<p><b>Sun Workshop 6.1</b></p> <p><b>Sun Workshop 6.1</b></p>
<p>There is a makefile for the sun (6.1) compiler (C++ version 3.10). <p>There is a makefile for the sun (6.1) compiler (C++ version 3.11).
From the command prompt change to the &lt;boost&gt;/libs/regex/build From the command prompt change to the &lt;boost&gt;/libs/regex/build
directory and type: </p> directory and type: </p>

327
jm_opt.in
View File

@ -10,21 +10,6 @@
/* BOOST_NO_STDC_NAMESPACE C library not in namespace std */ /* BOOST_NO_STDC_NAMESPACE C library not in namespace std */
#undef BOOST_NO_STDC_NAMESPACE #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 */ /* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */
#undef BOOST_RE_PLATFORM_W32 #undef BOOST_RE_PLATFORM_W32
@ -49,8 +34,8 @@
/* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */ /* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */
#undef BOOST_RE_NO_WSPRINTF #undef BOOST_RE_NO_WSPRINTF
/* BOOST_RE_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */ /* BOOST_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */
#undef BOOST_RE_NO_MEMBER_TEMPLATES #undef BOOST_NO_MEMBER_TEMPLATES
/* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */ /* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */
#undef BOOST_RE_NO_TEMPLATE_RETURNS #undef BOOST_RE_NO_TEMPLATE_RETURNS
@ -58,25 +43,6 @@
/* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */ /* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */
#undef BOOST_RE_NO_PARTIAL_FUNC_SPEC #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 /* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style
message categories (catopen catgets catclose). */ message categories (catopen catgets catclose). */
#undef BOOST_RE_NO_CAT #undef BOOST_RE_NO_CAT
@ -85,15 +51,6 @@
the current translation mode. */ the current translation mode. */
#undef BOOST_RE_THREADS #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<T>"
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 */ /* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */
#undef BOOST_RE_NO_TEMPLATE_MERGE #undef BOOST_RE_NO_TEMPLATE_MERGE
@ -127,11 +84,11 @@
/* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */ /* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */
#undef BOOST_RE_NO_ITERATOR_H #undef BOOST_RE_NO_ITERATOR_H
/* BOOST_RE_NO_MEMORY_H Define if <memory> does not fully comply with the /* BOOST_NO_STD_ALLOCATOR Define if <memory> does not fully comply with the
latest standard, and is not auto-recognised, latest standard, and is not auto-recognised,
that means nested template classes that means nested template classes
which hardly any compilers support at present. */ 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 /* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard
<locale> header available. */ <locale> header available. */
@ -154,267 +111,13 @@
/* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */ /* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */
#undef BOOST_RE_OLD_IOSTREAM #undef BOOST_RE_OLD_IOSTREAM
/* BOOST_RE_DISTANCE_T For std::distance: /* BOOST_NO_STD_DISTANCE If there is no std::distance. */
0 = NA #undef BOOST_NO_STD_DISTANCE
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<std::tag_type, T, D, T*, T&>
2 = std::iterator<std::tag_type, T, D> */
#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<std::output_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::output_iterator_tag, T, D>
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<std::input_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::input_iterator_tag, T, D>
3 = std::input_iterator<T, D>
4 = std::input_iterator<T> */
#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<std::forward_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::forward_iterator_tag, T, D>
3 = std::forward_iterator<T, D> */
#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<std::bidirectional_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::bidirectional_iterator_tag, T, D>
3 = std::bidirectional_iterator<T, D> */
#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<std::random_access_iterator_tag, T, D, T*, T&>
2 = std::iterator<std::random_access_iterator_tag, T, D>
3 = std::random_access_iterator<T, D> */
#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_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and /* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and
front_insert_iterator<> do not have assignment operators */ front_insert_iterator<> do not have assignment operators */
#undef BOOST_RE_NO_OI_ASSIGN #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<T>
#elif defined(BOOST_RE_OI_T_1)
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_OI_T_2)
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D>
#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<T>
#elif defined(BOOST_RE_II_T_1)
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_II_T_2)
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D>
#elif defined(BOOST_RE_II_T_3)
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
#elif defined(BOOST_RE_II_T_4)
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T>
#else
syntax error
#endif
#ifdef BOOST_RE_FI_T_0
# define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#elif defined(BOOST_RE_FI_T_1)
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_FI_T_2)
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D>
#elif defined(BOOST_RE_FI_T_3)
# define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
#else
syntax error
#endif
#ifdef BOOST_RE_BI_T_0
# define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#elif defined(BOOST_RE_BI_T_1)
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_BI_T_2)
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D>
#elif defined(BOOST_RE_BI_T_3)
# define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
#else
syntax error
#endif
#ifdef BOOST_RE_RI_T_0
# define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
#elif defined(BOOST_RE_RI_T_1)
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
#elif defined(BOOST_RE_RI_T_2)
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D>
#elif defined(BOOST_RE_RI_T_3)
# define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
#else
syntax error
#endif
#include <stdexcept> #include <stdexcept>
#ifndef BOOST_RE_NO_ITERATOR_H #ifndef BOOST_RE_NO_ITERATOR_H
@ -426,24 +129,6 @@ syntax error
#endif #endif
#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<x, y>(inst)
#define REBIND_TYPE(x, y) re_alloc_binder<x, y>
#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 <memory>
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
#endif
#endif // BOOST_RE_AUTO_CONFIGURE #endif // BOOST_RE_AUTO_CONFIGURE

View File

@ -30,14 +30,9 @@
#define JM_CSTD std #define JM_CSTD std
#define JM jm #define JM jm
#define JM_RA_ITERATOR(a,b) BOOST_RE_RA_ITERATOR(a,b)
#ifdef BOOST_RE_OLD_IOSTREAM #ifdef BOOST_RE_OLD_IOSTREAM
#define JM_OLD_IOSTREAM #define JM_OLD_IOSTREAM
#endif #endif
#ifdef BOOST_RE_NO_MEMBER_TEMPLATES
#define JM_NO_MEMBER_TEMPLATES
#endif
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -20,7 +20,7 @@
<H3> Regex++, POSIX API Reference.</H3> <H3> Regex++, POSIX API Reference.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.10, 18 April 2000)</I> <I>(version 3.11, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE c_regex_traits.cpp * FILE c_regex_traits.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Implements the c_regex_traits<charT> traits class * DESCRIPTION: Implements the c_regex_traits<charT> traits class
*/ */
@ -42,7 +42,7 @@ namespace{
// //
// character classes: // 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_alnum,
boost::re_detail::c_traits_base::char_class_alpha, boost::re_detail::c_traits_base::char_class_alpha,
boost::re_detail::c_traits_base::char_class_cntrl, 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(); 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 BOOST_RE_GUARD_STACK
unsigned int i; unsigned int i;
@ -858,7 +858,7 @@ void BOOST_RE_CALL c_regex_traits<wchar_t>::free()
#endif #endif
} }
bool BOOST_RE_CALL c_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f) bool BOOST_RE_CALL c_regex_traits<wchar_t>::do_iswclass(wchar_t c, boost::uint_fast32_t f)
{ {
BOOST_RE_GUARD_STACK BOOST_RE_GUARD_STACK
if((c & ~0xFF) == 0) if((c & ~0xFF) == 0)
@ -976,7 +976,7 @@ int BOOST_RE_CALL c_regex_traits<wchar_t>::toi(const wchar_t*& first, const wcha
return result; return result;
} }
jm_uintfast32_t BOOST_RE_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last) boost::uint_fast32_t BOOST_RE_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)
{ {
std::basic_string<wchar_t> s(first, last); std::basic_string<wchar_t> s(first, last);
unsigned int len = strnarrow((char*)0, 0, s.c_str()); unsigned int len = strnarrow((char*)0, 0, s.c_str());

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: c_regex_traits_common.cpp * FILE: c_regex_traits_common.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements common code and data for the * DESCRIPTION: Implements common code and data for the
* c_regex_traits<charT> traits classes. * c_regex_traits<charT> traits classes.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: c_regex_traits.cpp * FILE: c_regex_traits.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements the cpp_regex_traits<charT> traits class * DESCRIPTION: Implements the cpp_regex_traits<charT> traits class
*/ */
#include <clocale> #include <clocale>
@ -39,7 +39,7 @@ namespace{
const unsigned int re_classes_max = 14; const unsigned int re_classes_max = 14;
const unsigned int char_set_size = CHAR_MAX - CHAR_MIN + 1; 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_alnum,
boost::re_detail::cpp_regex_traits_base::char_class_alpha, boost::re_detail::cpp_regex_traits_base::char_class_alpha,
boost::re_detail::cpp_regex_traits_base::char_class_cntrl, boost::re_detail::cpp_regex_traits_base::char_class_cntrl,
@ -342,7 +342,7 @@ int BOOST_RE_CALL cpp_regex_traits<char>::toi(const char*& first, const char* la
return 0; return 0;
} }
jm_uintfast32_t BOOST_RE_CALL cpp_regex_traits<char>::lookup_classname(const char* first, const char* last)const boost::uint_fast32_t BOOST_RE_CALL cpp_regex_traits<char>::lookup_classname(const char* first, const char* last)const
{ {
BOOST_RE_GUARD_STACK BOOST_RE_GUARD_STACK
unsigned int i; unsigned int i;
@ -708,7 +708,7 @@ int BOOST_RE_CALL cpp_regex_traits<wchar_t>::toi(const wchar_t*& first, const wc
return 0; return 0;
} }
jm_uintfast32_t BOOST_RE_CALL cpp_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)const boost::uint_fast32_t BOOST_RE_CALL cpp_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)const
{ {
BOOST_RE_GUARD_STACK BOOST_RE_GUARD_STACK
unsigned int i; unsigned int i;

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: cregex.cpp * FILE: cregex.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements high level class boost::RexEx * DESCRIPTION: Implements high level class boost::RexEx
*/ */
#include <boost/cregex.hpp> #include <boost/cregex.hpp>
@ -170,7 +170,7 @@ RegEx& RegEx::operator=(const char* p)
unsigned int RegEx::SetExpression(const char* p, bool icase) unsigned int RegEx::SetExpression(const char* p, bool icase)
{ {
BOOST_RE_GUARD_STACK 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); return pdata->e.set_expression(p, f);
} }

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: fileiter.cpp * FILE: fileiter.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx. * DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: posix_api.cpp * FILE: posix_api.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements the Posix API wrappers. * 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: // 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; expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
// and translate those that are actually set: // 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 BOOST_RE_GUARD_STACK
bool result = false; 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* end;
const char* start; const char* start;
cmatch m; cmatch m;

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: primary_transform.hpp * FILE: primary_transform.hpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Heuristically determines the sort string format in use * DESCRIPTION: Heuristically determines the sort string format in use
* by the current locale. * by the current locale.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: regex.cpp * FILE: regex.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Misc boost::regbase member funnctions. * DESCRIPTION: Misc boost::regbase member funnctions.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: regex_debug.cpp * FILE: regex_debug.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Misc. debugging helpers. * DESCRIPTION: Misc. debugging helpers.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: regex_synch.cpp * FILE: regex_synch.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Thread synch helper functions, for regular * DESCRIPTION: Thread synch helper functions, for regular
* expression library. * expression library.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: w32_regex_traits.cpp * FILE: w32_regex_traits.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements the w32_regex_traits<charT> traits class * DESCRIPTION: Implements the w32_regex_traits<charT> traits class
*/ */
@ -37,7 +37,7 @@ namespace{
// //
// character classes: // 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_alnum,
boost::re_detail::w32_traits_base::char_class_alpha, boost::re_detail::w32_traits_base::char_class_alpha,
boost::re_detail::w32_traits_base::char_class_cntrl, 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); 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 BOOST_RE_GUARD_STACK
unsigned int i; unsigned int i;
@ -645,7 +645,7 @@ w32_regex_traits<wchar_t>::~w32_regex_traits()
#endif #endif
} }
bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f) bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, boost::uint_fast32_t f)
{ {
BOOST_RE_GUARD_STACK BOOST_RE_GUARD_STACK
if((c & ~0xFF) == 0) if((c & ~0xFF) == 0)
@ -756,7 +756,7 @@ int BOOST_RE_CALL w32_regex_traits<wchar_t>::toi(const wchar_t*& first, const wc
return result; return result;
} }
jm_uintfast32_t BOOST_RE_CALL w32_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last) boost::uint_fast32_t BOOST_RE_CALL w32_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)
{ {
std::basic_string<wchar_t> s(first, last); std::basic_string<wchar_t> s(first, last);
unsigned int len = strnarrow((char*)0, 0, s.c_str()); unsigned int len = strnarrow((char*)0, 0, s.c_str());

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: wide_posix_api.cpp * FILE: wide_posix_api.cpp
* VERSION: 3.10 * VERSION: 3.11
* DESCRIPTION: Implements the wide character POSIX API wrappers. * 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: // 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; expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
// and translate those that are actually set: // 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 BOOST_RE_GUARD_STACK
bool result = false; 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* end;
const wchar_t* start; const wchar_t* start;
wcmatch m; wcmatch m;

View File

@ -20,7 +20,7 @@
<H3> Regex++, Regular Expression Syntax.</H3> <H3> Regex++, Regular Expression Syntax.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.10, 18 April 2000)</I> <I>(version 3.11, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -21,7 +21,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h2 align="center">Regex++, <td valign="top" width="50%"><h2 align="center">Regex++,
Template Class and Algorithm Reference.</h2> Template Class and Algorithm Reference.</h2>
<p><i>(version 3.10, 18 April 2000)</i> </p> <p><i>(version 3.11, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-9 <pre><i>Copyright (c) 1998-9
Dr John Maddock Dr John Maddock
@ -427,7 +427,7 @@ for a container of <i>charT</i>. </p>
</i></font> <b> typedef</b> Allocator allocator_type; </i></font> <b> typedef</b> Allocator allocator_type;
&nbsp;&nbsp; <b>typedef</b> Allocator alloc_type; &nbsp;&nbsp; <b>typedef</b> Allocator alloc_type;
<font color="#000080">&nbsp;&nbsp; <i>// flag_type <font color="#000080">&nbsp;&nbsp; <i>// flag_type
</i></font>&nbsp;&nbsp; <b>typedef</b> jm_uintfast32_t flag_type; </i></font>&nbsp;&nbsp; <b>typedef</b> boost::int_fast32_t flag_type;
<b>public</b>: <b>public</b>:
&nbsp; <font color="#000080"><em>// constructors</em></font> &nbsp; <font color="#000080"><em>// constructors</em></font>
&nbsp; <strong>explicit</strong> reg_expression(<b>const</b> Allocator&amp; a = Allocator()); &nbsp; <strong>explicit</strong> reg_expression(<b>const</b> Allocator&amp; a = Allocator());
@ -550,7 +550,7 @@ member functions: <br>
<td valign="top" width="45%"><font size="2"><b>template</b> <td valign="top" width="45%"><font size="2"><b>template</b>
&lt;class ST, class SA&gt; <br> &lt;class ST, class SA&gt; <br>
reg_expression(<b>const</b> std::basic_string&lt;charT, reg_expression(<b>const</b> std::basic_string&lt;charT,
ST, SA&gt;&amp; p, jm_uintfast32_t f = regbase::normal, <b>const</b> ST, SA&gt;&amp; p, boost::int_fast32_t f = regbase::normal, <b>const</b>
Allocator&amp; a = Allocator());</font></td> Allocator&amp; a = Allocator());</font></td>
<td valign="top" width="45%"><font size="2">&nbsp;Constructs <td valign="top" width="45%"><font size="2">&nbsp;Constructs
an instance of reg_expression from the expression denoted an instance of reg_expression from the expression denoted

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE parse.cpp * FILE parse.cpp
* VERSION 3.10 * VERSION 3.11
* *
* Input parsing functions for regress. * Input parsing functions for regress.
* *

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_test.cpp * FILE regex_test.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Builds regression test program with default * DESCRIPTION: Builds regression test program with default
* locale and narrow character tests. Also * locale and narrow character tests. Also
* instantiates all the templates in the library * instantiates all the templates in the library

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE regress.cpp * FILE regress.cpp
* VERSION 3.10 * VERSION 3.11
* *
* main() and associated code for regress. * main() and associated code for regress.
* *
@ -39,6 +39,8 @@ using std::endl;
#pragma hrdstop #pragma hrdstop
#endif #endif
#include <boost/test/cpp_main.cpp>
#include "regress.h" #include "regress.h"
#if defined(BOOST_MSVC) && defined(_DEBUG) #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) #if defined(BOOST_MSVC) && defined(_DEBUG)
// turn on heap reporting at program exit: // 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; 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; return error_count;
} }

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE regress.h * FILE regress.h
* VERSION 3.10 * VERSION 3.11
* *
* Function and data declarations for regress. * Function and data declarations for regress.
* *
@ -129,7 +129,7 @@ public:
typedef char value_type; typedef char value_type;
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES #ifndef BOOST_NO_MEMBER_TEMPLATES
template <class U> template <class U>
struct rebind struct rebind
{ {
@ -187,7 +187,7 @@ public:
// class debug_iterator // class debug_iterator
// //
template <class T> template <class T>
struct debug_iterator : public BOOST_RE_RA_ITERATOR(T, std::ptrdiff_t) struct debug_iterator
{ {
typedef std::ptrdiff_t difference_type; typedef std::ptrdiff_t difference_type;
typedef char_t value_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{ namespace std{
template <class T> template <class T>
inline random_access_iterator_tag __STL_CALL inline random_access_iterator_tag __STL_CALL
__ITERATOR_CATEGORY(const debug_iterator<T>&) {
return random_access_iterator_tag();
}
}
#elif defined(__STL_CONFIG_H)
namespace std{
template <class T>
inline random_access_iterator_tag
iterator_category(const debug_iterator<T>&) {
return random_access_iterator_tag();
}
}
#endif
#ifdef BOOST_MSVC
namespace std{
template <class T>
inline random_access_iterator_tag __cdecl
_Iter_cat(const debug_iterator<T>&) {
return random_access_iterator_tag();
}
}
#endif
#ifdef BOOST_RWSTD_VER
namespace std{
template <class T>
inline random_access_iterator_tag
__iterator_category(const debug_iterator<T>&) { __iterator_category(const debug_iterator<T>&) {
return random_access_iterator_tag(); return random_access_iterator_tag();
} }
} }
#endif #endif
#ifdef BOOST_RE_TEST_LOCALE_W32 #ifdef BOOST_RE_TEST_LOCALE_W32
typedef boost::reg_expression<char_t, boost::w32_regex_traits<char_t>, jm_debug_alloc> re_type; typedef boost::reg_expression<char_t, boost::w32_regex_traits<char_t>, jm_debug_alloc> re_type;
#elif defined(BOOST_RE_TEST_LOCALE_CPP) #elif defined(BOOST_RE_TEST_LOCALE_CPP)

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE tests.cpp * FILE tests.cpp
* VERSION 3.10 * VERSION 3.11
* *
* the actual tests conducted by regress. * the actual tests conducted by regress.
* *

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_test.cpp * FILE regex_test.cpp
* VERSION 3.10 * VERSION 3.11
* DESCRIPTION: Builds regression test program with default * DESCRIPTION: Builds regression test program with default
* locale and wide character tests. Also * locale and wide character tests. Also
* instantiates all the templates in the library * instantiates all the templates in the library

View File

@ -19,7 +19,7 @@
HEIGHT="86" ALT="C++ Boost"> </H3> HEIGHT="86" ALT="C++ Boost"> </H3>
</TD> </TD>
<TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class <TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class
Reference. <I>(version 3.10, 18 April 2000)</I>&nbsp; </H3> Reference. <I>(version 3.11, 18 April 2000)</I>&nbsp; </H3>
<PRE> <PRE>
<I>Copyright (c) 1998-2000 <I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock