This removes some more redundant _CharT template parameters. 2013-11-08 Jonathan Wakely <jwakely....@gmail.com>
* include/bits/regex_compiler.h (__detail::_AnyMatcher, __detail::_CharMatcher, __detail::_BracketMatcher): Remove redundant _CharT template parameters. * include/bits/regex_compiler.tcc: Likewise. Tested x86_64-linux, committed to trunk.
commit 1202237bdd397d1d3104bf1125e72f16d443d134 Author: Jonathan Wakely <jwakely....@gmail.com> Date: Fri Nov 8 12:45:26 2013 +0000 * include/bits/regex_compiler.h (__detail::_AnyMatcher, __detail::_CharMatcher, __detail::_BracketMatcher): Remove redundant _CharT template parameters. * include/bits/regex_compiler.tcc: Likewise. diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h index fef8862..406d9a9 100644 --- a/libstdc++-v3/include/bits/regex_compiler.h +++ b/libstdc++-v3/include/bits/regex_compiler.h @@ -39,7 +39,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ - template<typename _CharT, typename _TraitsT> + template<typename _TraitsT> struct _BracketMatcher; /// Builds an NFA from an input iterator interval. @@ -59,13 +59,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return make_shared<_RegexT>(std::move(_M_nfa)); } private: - typedef typename _TraitsT::char_type _CharT; typedef _Scanner<_FwdIter> _ScannerT; typedef typename _ScannerT::_TokenT _TokenT; typedef _StateSeq<_TraitsT> _StateSeqT; typedef std::stack<_StateSeqT, std::vector<_StateSeqT>> _StackT; - typedef _BracketMatcher<_CharT, _TraitsT> _BMatcherT; - typedef std::ctype<_CharT> _CtypeT; + typedef _BracketMatcher<_TraitsT> _BMatcherT; + typedef std::ctype<typename _TraitsT::char_type> _CtypeT; // accepts a specific token or returns false. bool @@ -139,9 +138,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return _Cmplr(__first, __last, __traits, __flags)._M_get_nfa(); } - template<typename _CharT, typename _TraitsT> + template<typename _TraitsT> struct _AnyMatcher { + typedef typename _TraitsT::char_type _CharT; + explicit _AnyMatcher(const _TraitsT& __traits) : _M_traits(__traits) @@ -159,9 +160,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const _TraitsT& _M_traits; }; - template<typename _CharT, typename _TraitsT> + template<typename _TraitsT> struct _CharMatcher { + typedef typename _TraitsT::char_type _CharT; typedef regex_constants::syntax_option_type _FlagT; explicit @@ -188,9 +190,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; /// Matches a character range (bracket expression) - template<typename _CharT, typename _TraitsT> + template<typename _TraitsT> struct _BracketMatcher { + typedef typename _TraitsT::char_type _CharT; typedef typename _TraitsT::char_class_type _CharClassT; typedef typename _TraitsT::string_type _StringT; typedef regex_constants::syntax_option_type _FlagT; diff --git a/libstdc++-v3/include/bits/regex_compiler.tcc b/libstdc++-v3/include/bits/regex_compiler.tcc index 49c32b8..f89498f 100644 --- a/libstdc++-v3/include/bits/regex_compiler.tcc +++ b/libstdc++-v3/include/bits/regex_compiler.tcc @@ -286,11 +286,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (_M_match_token(_ScannerT::_S_token_anychar)) _M_stack.push(_StateSeqT(_M_nfa, _M_nfa._M_insert_matcher - (_AnyMatcher<_CharT, _TraitsT>(_M_traits)))); + (_AnyMatcher<_TraitsT>(_M_traits)))); else if (_M_try_char()) _M_stack.push(_StateSeqT(_M_nfa, _M_nfa._M_insert_matcher - (_CharMatcher<_CharT, _TraitsT>(_M_value[0], + (_CharMatcher<_TraitsT>(_M_value[0], _M_traits, _M_flags)))); else if (_M_match_token(_ScannerT::_S_token_backref)) @@ -430,9 +430,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __v; } - template<typename _CharT, typename _TraitsT> + template<typename _TraitsT> bool - _BracketMatcher<_CharT, _TraitsT>::operator()(_CharT __ch) const + _BracketMatcher<_TraitsT>::operator()(_CharT __ch) const { bool __ret = false; if (_M_traits.isctype(__ch, _M_class_set)