This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Regex refactoring
- From: Tim Shen <timshen91 at gmail dot com>
- To: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Cc: "libstdc++" <libstdc++ at gcc dot gnu dot org>
- Date: Thu, 7 Nov 2013 13:15:55 -0500
- Subject: Re: Regex refactoring
- Authentication-results: sourceware.org; auth=none
- References: <CAH6eHdQJwYAF5Yy6k3AGY_D4+fifjF5g57iZUAOeQ4C4wiazWA at mail dot gmail dot com>
On Thu, Nov 7, 2013 at 11:49 AM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> The most common instantiations of _Compiler will probably use const
> char*, std::string::iterator and std::string::const_iterator. It would
> be good if they could all share code, since they all operate on the
> same underlying character type, but I don't know if that's possible.
We may read whole input characters into a basic_string<_CharT> then
use it to initialize _Compiler. Now it can be simplified to:
template<typename _TraitsT>
class _Compiler
{
typedef typename _TraitsT::char_type _CharT;
...
_Compiler(basic_string<_CharT>&& __input_string);
};
It requires more memory, but I don't think storing a string which
describing a regex is unacceptable.
Does this make sense?
Thank you!
--
Regards,
Tim Shen