From: redi Date: Mon, 14 Feb 2011 10:04:04 +0000 (+0000) Subject: 2011-02-14 Jonathan Wakely X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=4f24f8e22f385f8e081e5a7f197ee90038f0de69 2011-02-14 Jonathan Wakely * include/bits/regex_compiler.h: Remove unnecessary bind() calls. * include/bits/regex_nfa.h: Remove unnecessary base classes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170124 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ddd507f1f37..cb03341efc7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2011-02-14 Jonathan Wakely + + * include/bits/regex_compiler.h: Remove unnecessary bind() calls. + * include/bits/regex_nfa.h: Remove unnecessary base classes. + 2011-02-13 Ralf Wildenhues * configure: Regenerate. diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h index 5cfd1929cff..eda4e357cf0 100644 --- a/libstdc++-v3/include/bits/regex_compiler.h +++ b/libstdc++-v3/include/bits/regex_compiler.h @@ -1,6 +1,6 @@ // class template regex -*- C++ -*- -// Copyright (C) 2010 Free Software Foundation, Inc. +// Copyright (C) 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -714,23 +714,18 @@ namespace __regex : _M_traits(__traits), _M_scanner(__b, __e, __flags, _M_traits.getloc()), _M_state_store(__flags) { - using std::bind; - using std::placeholders::_1; - using std::placeholders::_2; typedef _StartTagger<_InIter, _TraitsT> _Start; typedef _EndTagger<_InIter, _TraitsT> _End; _StateSeq __r(_M_state_store, - _M_state_store._M_insert_subexpr_begin( - bind(_Start(0), _1, _2))); + _M_state_store._M_insert_subexpr_begin(_Start(0))); _M_disjunction(); if (!_M_stack.empty()) { __r._M_append(_M_stack.top()); _M_stack.pop(); } - __r._M_append(_M_state_store. - _M_insert_subexpr_end(0, bind(_End(0), _1, _2))); + __r._M_append(_M_state_store._M_insert_subexpr_end(0, _End(0))); __r._M_append(_M_state_store._M_insert_accept()); } @@ -905,9 +900,6 @@ namespace __regex _Compiler<_InIter, _TraitsT>:: _M_atom() { - using std::bind; - using std::placeholders::_1; - using std::placeholders::_2; typedef _CharMatcher<_InIter, _TraitsT> _CMatcher; typedef _StartTagger<_InIter, _TraitsT> _Start; typedef _EndTagger<_InIter, _TraitsT> _End; @@ -915,26 +907,23 @@ namespace __regex if (_M_match_token(_ScannerT::_S_token_anychar)) { _M_stack.push(_StateSeq(_M_state_store, - _M_state_store. - _M_insert_matcher(bind(_AnyMatcher, _1)))); + _M_state_store._M_insert_matcher + (_AnyMatcher))); return true; } if (_M_match_token(_ScannerT::_S_token_ord_char)) { - _M_stack.push(_StateSeq - (_M_state_store, _M_state_store. - _M_insert_matcher - (bind(_CMatcher(_M_cur_value[0], _M_traits), _1)))); + _M_stack.push(_StateSeq(_M_state_store, + _M_state_store._M_insert_matcher + (_CMatcher(_M_cur_value[0], _M_traits)))); return true; } if (_M_match_token(_ScannerT::_S_token_quoted_char)) { // note that in the ECMA grammar, this case covers backrefs. _M_stack.push(_StateSeq(_M_state_store, - _M_state_store. - _M_insert_matcher - (bind(_CMatcher(_M_cur_value[0], _M_traits), - _1)))); + _M_state_store._M_insert_matcher + (_CMatcher(_M_cur_value[0], _M_traits)))); return true; } if (_M_match_token(_ScannerT::_S_token_backref)) @@ -947,7 +936,7 @@ namespace __regex int __mark = _M_state_store._M_sub_count(); _StateSeq __r(_M_state_store, _M_state_store. - _M_insert_subexpr_begin(bind(_Start(__mark), _1, _2))); + _M_insert_subexpr_begin(_Start(__mark))); this->_M_disjunction(); if (!_M_match_token(_ScannerT::_S_token_subexpr_end)) __throw_regex_error(regex_constants::error_paren); @@ -957,7 +946,7 @@ namespace __regex _M_stack.pop(); } __r._M_append(_M_state_store._M_insert_subexpr_end - (__mark, bind(_End(__mark), _1, _2))); + (__mark, _End(__mark))); _M_stack.push(__r); return true; } @@ -969,8 +958,6 @@ namespace __regex _Compiler<_InIter, _TraitsT>:: _M_bracket_expression() { - using std::bind; - using std::placeholders::_1; if (_M_match_token(_ScannerT::_S_token_bracket_begin)) { _RMatcherT __matcher(_M_match_token(_ScannerT::_S_token_line_begin), @@ -979,8 +966,7 @@ namespace __regex || !_M_match_token(_ScannerT::_S_token_bracket_end)) __throw_regex_error(regex_constants::error_brack); _M_stack.push(_StateSeq(_M_state_store, - _M_state_store._M_insert_matcher - (bind(__matcher, _1)))); + _M_state_store._M_insert_matcher(__matcher))); return true; } return false; diff --git a/libstdc++-v3/include/bits/regex_nfa.h b/libstdc++-v3/include/bits/regex_nfa.h index b1ae3fb3ea0..8aed9b48cc7 100644 --- a/libstdc++-v3/include/bits/regex_nfa.h +++ b/libstdc++-v3/include/bits/regex_nfa.h @@ -1,6 +1,6 @@ // class template regex -*- C++ -*- -// Copyright (C) 2010 Free Software Foundation, Inc. +// Copyright (C) 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -82,7 +82,6 @@ namespace __regex template struct _StartTagger - : public _Tagger { explicit _StartTagger(int __i) @@ -98,7 +97,6 @@ namespace __regex template struct _EndTagger - : public _Tagger { explicit _EndTagger(int __i) @@ -123,7 +121,6 @@ namespace __regex // Matches a single character template struct _CharMatcher - : public _Matcher { typedef typename _TraitsT::char_type char_type; @@ -147,7 +144,6 @@ namespace __regex // Matches a character range (bracket expression) template struct _RangeMatcher - : public _Matcher { typedef typename _TraitsT::char_type _CharT; typedef std::basic_string<_CharT> _StringT; @@ -208,7 +204,7 @@ namespace __regex typedef int _OpcodeT; _OpcodeT _M_opcode; // type of outgoing transition - _StateIdT _M_next; // outgoing tranition + _StateIdT _M_next; // outgoing transition _StateIdT _M_alt; // for _S_opcode_alternative unsigned int _M_subexpr; // for _S_opcode_subexpr_* _Tagger _M_tagger; // for _S_opcode_subexpr_*