This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch 1/4] std::regex refactoring


This creates new base classes for the parts of _State and _NFA which
are not dependent on template parameters, and replaces some copies
with moves.

2013-11-08  Jonathan Wakely  <jwakely.gcc@gmail.com>

        * include/bits/regex_automaton.h (__detail::_State): Split
        non-dependent parts into new _State_base.
        (__detail::_NFA): Likewise for _NFA_base. Use std::move() to avoid
        copies when inserting _MatcherT and _StateT objects.
        * include/bits/regex_automaton.tcc: Move member definitions to base
        class. Qualify dependent names.
        * include/bits/regex_compiler.h (__detail::_Compiler::_M_get_nfa): Make
        non-const and use std::move to avoid copying.
        * include/bits/regex_compiler.tcc: Likewise.
        * include/bits/regex_executor.h (__detail::_Executor::_M_is_word): Use
        array, so past-the-end iterator is valid.

Tested x86_64-linux, committed to trunk.

Attachment: patch-1.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]