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