Compare commits

...

3 Commits

Author SHA1 Message Date
354bb1e035 This commit was manufactured by cvs2svn to create tag
'Version_1_29_0'.

[SVN r15904]
2002-10-11 15:17:55 +00:00
3389eae235 Updates for .NET 2003
Fixed VC.Net warning
Adjusted search depth checking code


[SVN r15481]
2002-09-23 11:13:50 +00:00
0f55cfb574 This commit was manufactured by cvs2svn to create branch 'RC_1_29_0'.
[SVN r15460]
2002-09-19 20:49:39 +00:00
3 changed files with 18 additions and 7 deletions

View File

@ -68,7 +68,7 @@ template class BOOST_REGEX_DECL match_results<std::basic_string<BOOST_REGEX_CHAR
#pragma warning(push)
#pragma warning(disable : 4251 4231 4660)
template class BOOST_REGEX_DECL regex_traits< BOOST_REGEX_CHAR_T >;
//template class BOOST_REGEX_DECL regex_traits< BOOST_REGEX_CHAR_T >;
template class BOOST_REGEX_DECL reg_expression< BOOST_REGEX_CHAR_T >;
template class BOOST_REGEX_DECL re_detail::match_results_base<BOOST_REGEX_CHAR_T const*, BOOST_DEFAULT_ALLOCATOR(re_detail::def_alloc_param_traits<BOOST_REGEX_CHAR_T const*>::type)>;
template class BOOST_REGEX_DECL re_detail::match_results_base<std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator, BOOST_DEFAULT_ALLOCATOR(re_detail::def_alloc_param_traits<std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator>::type)>;

View File

@ -195,7 +195,7 @@ public:
difference_type max_state_count;
iterator* loop_starts;
_priv_match_data(const match_results_base<iterator, Allocator>&, iterator, iterator, unsigned);
_priv_match_data(const match_results_base<iterator, Allocator>&, iterator, iterator, std::size_t);
~_priv_match_data()
{
@ -211,7 +211,7 @@ public:
{
return loop_starts;
}
void estimate_max_state_count(iterator a, iterator b, unsigned states, std::random_access_iterator_tag*)
void estimate_max_state_count(iterator a, iterator b, std::size_t states, std::random_access_iterator_tag*)
{
difference_type dist = std::distance(a,b);
states *= states;
@ -221,7 +221,7 @@ public:
else
max_state_count = 1000 + states * dist;
}
void estimate_max_state_count(iterator a, iterator b, unsigned states, void*)
void estimate_max_state_count(iterator a, iterator b, std::size_t states, void*)
{
// we don't know how long the sequence is:
max_state_count = BOOST_REGEX_MAX_STATE_COUNT;
@ -229,14 +229,16 @@ public:
};
template <class iterator, class Allocator>
_priv_match_data<iterator, Allocator>::_priv_match_data(const match_results_base<iterator, Allocator>& m, iterator a, iterator b, unsigned states)
_priv_match_data<iterator, Allocator>::_priv_match_data(const match_results_base<iterator, Allocator>& m, iterator a, iterator b, std::size_t states)
: temp_match(m), matches(64, m.allocator()), prev_pos(64, m.allocator()), prev_record(64, m.allocator())
{
typedef typename regex_iterator_traits<iterator>::iterator_category category;
accumulators = 0;
caccumulators = 0;
loop_starts = 0;
state_count = 0;
estimate_max_state_count(a, b, states, static_cast<regex_iterator_traits<iterator>::iterator_category*>(0));
estimate_max_state_count(a, b, states, static_cast<category*>(0));
}
template <class iterator, class Allocator>
@ -1088,8 +1090,8 @@ bool query_match_aux(iterator first,
if(match_found || have_partial_match)
{
return true;
pd.state_count = 0;
return true;
}
// if we get to here then everything has failed
@ -1978,3 +1980,5 @@ inline unsigned int regex_grep(bool (*foo)(const match_results<std::basic_string

View File

@ -31,12 +31,19 @@ namespace boost{
#pragma option push -a8 -b -Vx -Ve -pc
#endif
#ifdef BOOST_MSVC
#pragma warning(push)
#pragma warning(disable : 4275)
#endif
class BOOST_REGEX_DECL bad_pattern : public std::runtime_error
{
public:
explicit bad_pattern(const std::string& s) : std::runtime_error(s){};
~bad_pattern() throw();
};
#ifdef BOOST_MSVC
#pragma warning(pop)
#endif
class BOOST_REGEX_DECL bad_expression : public bad_pattern
{