C++ Logo

std-proposals

Advanced search

Re: [std-proposals] regex over istreams

From: Jonathan Wakely <cxx_at_[hidden]>
Date: Thu, 20 Feb 2025 21:17:32 +0000
On Thu, 20 Feb 2025 at 13:48, Phil Bouchard via Std-Proposals <
std-proposals_at_[hidden]> wrote:

> Greetings,
>
> Seems to me regex over istreams would be quite useful. Here's an
> inefficient implementation:
>
>
> inline std::istream& operator >> (std::istream& in, std::string & v)
> {
> static const std::regex string_regex(R"(^\"(.*?)\"$)");
>

This uses a hardcoded regular expression to extract from the stream. That
doesn't seem very useful. Surely you would want to be able to customize the
regex? What API are you proposing for that?


> std::smatch match;
>
> std::string x;
>
> for (x += in.get(); in; x += in.get())
> if (std::regex_match(x, match, string_regex))
> {
> v = match[1].str();
>
> return in;
> }
>
> throw std::invalid_argument("Parse error.");
> }
>
> Is there any interests in such implementation?
>
>
> Regards,
> --
> [image: Fornux Logo] <https://www.fornux.com/>
> *Phil Bouchard* [image: LinkedIn Icon]
> <https://www.linkedin.com/in/phil-bouchard-5723a910/>
> Founder & CEO
> T: (819) 328-4743
> E: phil_at_[hidden] | www.fornux.com
> 320-345 de la Gauchetière Ouest | Montréal (Qc), H2Z 0A2 Canada
> [image: The Best Predictable C++ Memory Manager]
> <https://static.fornux.com/c-superset/> Le message ci-dessus, ainsi que
> les documents l'accompagnant, sont destinés uniquement aux personnes
> identifiées et peuvent contenir des informations privilégiées,
> confidentielles ou ne pouvant être divulguées. Si vous avez reçu ce message
> par erreur, veuillez le détruire.
> This communication (and/or the attachments) is intended for named
> recipients only and may contain privileged or confidential information
> which is not to be disclosed. If you received this communication by mistake
> please destroy all copies.
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>

Received on 2025-02-20 21:17:48