Skip to content

Instantly share code, notes, and snippets.

@jhunterkohler
Last active October 13, 2021 06:10
Show Gist options
  • Save jhunterkohler/a10ff26d62722438ede24abc02fb87b2 to your computer and use it in GitHub Desktop.
Save jhunterkohler/a10ff26d62722438ede24abc02fb87b2 to your computer and use it in GitHub Desktop.
An overcomplete set of user-defined literals for std::regex.
/*
* Copyright (C) 2021 Hunter Kohler <[email protected]>
*
* WARNING: AUTOGENERATED FILE, DO NOT EDIT DIRECTLY
*/
#ifndef REGEX_OPERATORS_H_
#define REGEX_OPERATORS_H_
#include <string>
#include <regex>
#define DECLARE_REGEX_OPERATOR(NAME, FLAGS) \
inline auto operator"" NAME(const char *x) { return std::basic_regex(x, FLAGS); } \
inline auto operator"" NAME(unsigned long long int x) { return std::basic_regex(std::to_string(x), FLAGS); } \
inline auto operator"" NAME(long double x) { return std::basic_regex(std::to_string(x), FLAGS); } \
inline auto operator"" NAME(char x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(wchar_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char8_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char16_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char32_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(const char *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const wchar_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char8_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char16_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char32_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); }
DECLARE_REGEX_OPERATOR(_re_ECMAScript, std::regex::ECMAScript)
DECLARE_REGEX_OPERATOR(_re_basic, std::regex::basic)
DECLARE_REGEX_OPERATOR(_re_extended, std::regex::extended)
DECLARE_REGEX_OPERATOR(_re_awk, std::regex::awk)
DECLARE_REGEX_OPERATOR(_re_grep, std::regex::grep)
DECLARE_REGEX_OPERATOR(_re_egrep, std::regex::egrep)
DECLARE_REGEX_OPERATOR(_re, std::regex::ECMAScript)
DECLARE_REGEX_OPERATOR(_re_i_ECMAScript, std::regex::ECMAScript | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_i_basic, std::regex::basic | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_i_extended, std::regex::extended | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_i_awk, std::regex::awk | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_i_grep, std::regex::grep | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_i_egrep, std::regex::egrep | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_i, std::regex::ECMAScript | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_n_ECMAScript, std::regex::ECMAScript | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_n_basic, std::regex::basic | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_n_extended, std::regex::extended | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_n_awk, std::regex::awk | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_n_grep, std::regex::grep | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_n_egrep, std::regex::egrep | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_n, std::regex::ECMAScript | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_o_ECMAScript, std::regex::ECMAScript | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_o_basic, std::regex::basic | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_o_extended, std::regex::extended | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_o_awk, std::regex::awk | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_o_grep, std::regex::grep | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_o_egrep, std::regex::egrep | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_o, std::regex::ECMAScript | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_c_ECMAScript, std::regex::ECMAScript | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_c_basic, std::regex::basic | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_c_extended, std::regex::extended | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_c_awk, std::regex::awk | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_c_grep, std::regex::grep | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_c_egrep, std::regex::egrep | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_c, std::regex::ECMAScript | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_in_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_in_basic, std::regex::basic | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_in_extended, std::regex::extended | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_in_awk, std::regex::awk | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_in_grep, std::regex::grep | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_in_egrep, std::regex::egrep | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_in, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_io_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_io_basic, std::regex::basic | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_io_extended, std::regex::extended | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_io_awk, std::regex::awk | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_io_grep, std::regex::grep | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_io_egrep, std::regex::egrep | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_io, std::regex::ECMAScript | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ic_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ic_basic, std::regex::basic | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ic_extended, std::regex::extended | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ic_awk, std::regex::awk | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ic_grep, std::regex::grep | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ic_egrep, std::regex::egrep | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ic, std::regex::ECMAScript | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ni_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ni_basic, std::regex::basic | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ni_extended, std::regex::extended | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ni_awk, std::regex::awk | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ni_grep, std::regex::grep | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ni_egrep, std::regex::egrep | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ni, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_no_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_no_basic, std::regex::basic | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_no_extended, std::regex::extended | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_no_awk, std::regex::awk | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_no_grep, std::regex::grep | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_no_egrep, std::regex::egrep | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_no, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nc_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nc_basic, std::regex::basic | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nc_extended, std::regex::extended | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nc_awk, std::regex::awk | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nc_grep, std::regex::grep | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nc_egrep, std::regex::egrep | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nc, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oi_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oi_basic, std::regex::basic | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oi_extended, std::regex::extended | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oi_awk, std::regex::awk | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oi_grep, std::regex::grep | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oi_egrep, std::regex::egrep | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oi, std::regex::ECMAScript | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_on_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_on_basic, std::regex::basic | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_on_extended, std::regex::extended | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_on_awk, std::regex::awk | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_on_grep, std::regex::grep | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_on_egrep, std::regex::egrep | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_on, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oc_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oc_basic, std::regex::basic | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oc_extended, std::regex::extended | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oc_awk, std::regex::awk | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oc_grep, std::regex::grep | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oc_egrep, std::regex::egrep | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oc, std::regex::ECMAScript | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ci_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ci_basic, std::regex::basic | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ci_extended, std::regex::extended | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ci_awk, std::regex::awk | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ci_grep, std::regex::grep | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ci_egrep, std::regex::egrep | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ci, std::regex::ECMAScript | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cn_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cn_basic, std::regex::basic | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cn_extended, std::regex::extended | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cn_awk, std::regex::awk | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cn_grep, std::regex::grep | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cn_egrep, std::regex::egrep | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cn, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_co_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_co_basic, std::regex::basic | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_co_extended, std::regex::extended | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_co_awk, std::regex::awk | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_co_grep, std::regex::grep | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_co_egrep, std::regex::egrep | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_co, std::regex::ECMAScript | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino_basic, std::regex::basic | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino_extended, std::regex::extended | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino_awk, std::regex::awk | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino_grep, std::regex::grep | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino_egrep, std::regex::egrep | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ino, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inc_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inc_basic, std::regex::basic | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inc_extended, std::regex::extended | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inc_awk, std::regex::awk | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inc_grep, std::regex::grep | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inc_egrep, std::regex::egrep | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inc, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ion_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ion_basic, std::regex::basic | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ion_extended, std::regex::extended | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ion_awk, std::regex::awk | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ion_grep, std::regex::grep | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ion_egrep, std::regex::egrep | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ion, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ioc_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ioc_basic, std::regex::basic | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ioc_extended, std::regex::extended | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ioc_awk, std::regex::awk | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ioc_grep, std::regex::grep | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ioc_egrep, std::regex::egrep | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ioc, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_icn_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icn_basic, std::regex::basic | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icn_extended, std::regex::extended | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icn_awk, std::regex::awk | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icn_grep, std::regex::grep | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icn_egrep, std::regex::egrep | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icn, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ico_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ico_basic, std::regex::basic | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ico_extended, std::regex::extended | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ico_awk, std::regex::awk | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ico_grep, std::regex::grep | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ico_egrep, std::regex::egrep | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ico, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio_basic, std::regex::basic | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio_extended, std::regex::extended | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio_awk, std::regex::awk | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio_grep, std::regex::grep | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio_egrep, std::regex::egrep | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nio, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nic_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nic_basic, std::regex::basic | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nic_extended, std::regex::extended | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nic_awk, std::regex::awk | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nic_grep, std::regex::grep | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nic_egrep, std::regex::egrep | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nic, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noi_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noi_basic, std::regex::basic | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noi_extended, std::regex::extended | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noi_awk, std::regex::awk | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noi_grep, std::regex::grep | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noi_egrep, std::regex::egrep | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noi, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noc_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noc_basic, std::regex::basic | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noc_extended, std::regex::extended | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noc_awk, std::regex::awk | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noc_grep, std::regex::grep | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noc_egrep, std::regex::egrep | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noc, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nci_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nci_basic, std::regex::basic | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nci_extended, std::regex::extended | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nci_awk, std::regex::awk | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nci_grep, std::regex::grep | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nci_egrep, std::regex::egrep | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nci, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_nco_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nco_basic, std::regex::basic | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nco_extended, std::regex::extended | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nco_awk, std::regex::awk | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nco_grep, std::regex::grep | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nco_egrep, std::regex::egrep | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nco, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_oin_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oin_basic, std::regex::basic | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oin_extended, std::regex::extended | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oin_awk, std::regex::awk | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oin_grep, std::regex::grep | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oin_egrep, std::regex::egrep | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oin, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oic_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oic_basic, std::regex::basic | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oic_extended, std::regex::extended | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oic_awk, std::regex::awk | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oic_grep, std::regex::grep | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oic_egrep, std::regex::egrep | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oic, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oni_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oni_basic, std::regex::basic | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oni_extended, std::regex::extended | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oni_awk, std::regex::awk | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oni_grep, std::regex::grep | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oni_egrep, std::regex::egrep | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oni, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onc_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onc_basic, std::regex::basic | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onc_extended, std::regex::extended | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onc_awk, std::regex::awk | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onc_grep, std::regex::grep | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onc_egrep, std::regex::egrep | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onc, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oci_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oci_basic, std::regex::basic | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oci_extended, std::regex::extended | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oci_awk, std::regex::awk | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oci_grep, std::regex::grep | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oci_egrep, std::regex::egrep | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oci, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocn_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocn_basic, std::regex::basic | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocn_extended, std::regex::extended | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocn_awk, std::regex::awk | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocn_grep, std::regex::grep | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocn_egrep, std::regex::egrep | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocn, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin_basic, std::regex::basic | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin_extended, std::regex::extended | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin_awk, std::regex::awk | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin_grep, std::regex::grep | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin_egrep, std::regex::egrep | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cin, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cio_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cio_basic, std::regex::basic | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cio_extended, std::regex::extended | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cio_awk, std::regex::awk | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cio_grep, std::regex::grep | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cio_egrep, std::regex::egrep | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cio, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cni_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cni_basic, std::regex::basic | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cni_extended, std::regex::extended | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cni_awk, std::regex::awk | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cni_grep, std::regex::grep | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cni_egrep, std::regex::egrep | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cni, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cno_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cno_basic, std::regex::basic | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cno_extended, std::regex::extended | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cno_awk, std::regex::awk | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cno_grep, std::regex::grep | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cno_egrep, std::regex::egrep | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cno, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_coi_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coi_basic, std::regex::basic | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coi_extended, std::regex::extended | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coi_awk, std::regex::awk | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coi_grep, std::regex::grep | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coi_egrep, std::regex::egrep | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coi, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_con_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_con_basic, std::regex::basic | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_con_extended, std::regex::extended | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_con_awk, std::regex::awk | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_con_grep, std::regex::grep | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_con_egrep, std::regex::egrep | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_con, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_inoc_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inoc_basic, std::regex::basic | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inoc_extended, std::regex::extended | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inoc_awk, std::regex::awk | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inoc_grep, std::regex::grep | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inoc_egrep, std::regex::egrep | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inoc, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_inco_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inco_basic, std::regex::basic | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inco_extended, std::regex::extended | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inco_awk, std::regex::awk | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inco_grep, std::regex::grep | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inco_egrep, std::regex::egrep | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_inco, std::regex::ECMAScript | std::regex::icase | std::regex::nosubs | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ionc_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ionc_basic, std::regex::basic | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ionc_extended, std::regex::extended | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ionc_awk, std::regex::awk | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ionc_grep, std::regex::grep | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ionc_egrep, std::regex::egrep | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_ionc, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_iocn_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_iocn_basic, std::regex::basic | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_iocn_extended, std::regex::extended | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_iocn_awk, std::regex::awk | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_iocn_grep, std::regex::grep | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_iocn_egrep, std::regex::egrep | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_iocn, std::regex::ECMAScript | std::regex::icase | std::regex::optimize | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icno_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icno_basic, std::regex::basic | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icno_extended, std::regex::extended | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icno_awk, std::regex::awk | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icno_grep, std::regex::grep | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icno_egrep, std::regex::egrep | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icno, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_icon_ECMAScript, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icon_basic, std::regex::basic | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icon_extended, std::regex::extended | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icon_awk, std::regex::awk | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icon_grep, std::regex::grep | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icon_egrep, std::regex::egrep | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_icon, std::regex::ECMAScript | std::regex::icase | std::regex::collate | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_nioc_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nioc_basic, std::regex::basic | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nioc_extended, std::regex::extended | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nioc_awk, std::regex::awk | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nioc_grep, std::regex::grep | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nioc_egrep, std::regex::egrep | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nioc, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::optimize | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_nico_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nico_basic, std::regex::basic | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nico_extended, std::regex::extended | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nico_awk, std::regex::awk | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nico_grep, std::regex::grep | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nico_egrep, std::regex::egrep | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_nico, std::regex::ECMAScript | std::regex::nosubs | std::regex::icase | std::regex::collate | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_noic_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noic_basic, std::regex::basic | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noic_extended, std::regex::extended | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noic_awk, std::regex::awk | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noic_grep, std::regex::grep | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noic_egrep, std::regex::egrep | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noic, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_noci_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noci_basic, std::regex::basic | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noci_extended, std::regex::extended | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noci_awk, std::regex::awk | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noci_grep, std::regex::grep | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noci_egrep, std::regex::egrep | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_noci, std::regex::ECMAScript | std::regex::nosubs | std::regex::optimize | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncio_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncio_basic, std::regex::basic | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncio_extended, std::regex::extended | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncio_awk, std::regex::awk | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncio_grep, std::regex::grep | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncio_egrep, std::regex::egrep | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncio, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_ncoi_ECMAScript, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncoi_basic, std::regex::basic | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncoi_extended, std::regex::extended | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncoi_awk, std::regex::awk | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncoi_grep, std::regex::grep | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncoi_egrep, std::regex::egrep | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ncoi, std::regex::ECMAScript | std::regex::nosubs | std::regex::collate | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_oinc_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oinc_basic, std::regex::basic | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oinc_extended, std::regex::extended | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oinc_awk, std::regex::awk | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oinc_grep, std::regex::grep | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oinc_egrep, std::regex::egrep | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oinc, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::nosubs | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_oicn_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oicn_basic, std::regex::basic | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oicn_extended, std::regex::extended | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oicn_awk, std::regex::awk | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oicn_grep, std::regex::grep | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oicn_egrep, std::regex::egrep | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_oicn, std::regex::ECMAScript | std::regex::optimize | std::regex::icase | std::regex::collate | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_onic_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onic_basic, std::regex::basic | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onic_extended, std::regex::extended | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onic_awk, std::regex::awk | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onic_grep, std::regex::grep | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onic_egrep, std::regex::egrep | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onic, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::icase | std::regex::collate)
DECLARE_REGEX_OPERATOR(_re_onci_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onci_basic, std::regex::basic | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onci_extended, std::regex::extended | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onci_awk, std::regex::awk | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onci_grep, std::regex::grep | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onci_egrep, std::regex::egrep | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_onci, std::regex::ECMAScript | std::regex::optimize | std::regex::nosubs | std::regex::collate | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocin_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocin_basic, std::regex::basic | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocin_extended, std::regex::extended | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocin_awk, std::regex::awk | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocin_grep, std::regex::grep | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocin_egrep, std::regex::egrep | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocin, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_ocni_ECMAScript, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocni_basic, std::regex::basic | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocni_extended, std::regex::extended | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocni_awk, std::regex::awk | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocni_grep, std::regex::grep | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocni_egrep, std::regex::egrep | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_ocni, std::regex::ECMAScript | std::regex::optimize | std::regex::collate | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cino_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cino_basic, std::regex::basic | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cino_extended, std::regex::extended | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cino_awk, std::regex::awk | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cino_grep, std::regex::grep | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cino_egrep, std::regex::egrep | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cino, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::nosubs | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cion_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cion_basic, std::regex::basic | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cion_extended, std::regex::extended | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cion_awk, std::regex::awk | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cion_grep, std::regex::grep | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cion_egrep, std::regex::egrep | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cion, std::regex::ECMAScript | std::regex::collate | std::regex::icase | std::regex::optimize | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_cnio_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnio_basic, std::regex::basic | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnio_extended, std::regex::extended | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnio_awk, std::regex::awk | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnio_grep, std::regex::grep | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnio_egrep, std::regex::egrep | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnio, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::icase | std::regex::optimize)
DECLARE_REGEX_OPERATOR(_re_cnoi_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cnoi_basic, std::regex::basic | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cnoi_extended, std::regex::extended | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cnoi_awk, std::regex::awk | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cnoi_grep, std::regex::grep | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cnoi_egrep, std::regex::egrep | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_cnoi, std::regex::ECMAScript | std::regex::collate | std::regex::nosubs | std::regex::optimize | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coin_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coin_basic, std::regex::basic | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coin_extended, std::regex::extended | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coin_awk, std::regex::awk | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coin_grep, std::regex::grep | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coin_egrep, std::regex::egrep | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coin, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::icase | std::regex::nosubs)
DECLARE_REGEX_OPERATOR(_re_coni_ECMAScript, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coni_basic, std::regex::basic | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coni_extended, std::regex::extended | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coni_awk, std::regex::awk | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coni_grep, std::regex::grep | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coni_egrep, std::regex::egrep | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
DECLARE_REGEX_OPERATOR(_re_coni, std::regex::ECMAScript | std::regex::collate | std::regex::optimize | std::regex::nosubs | std::regex::icase)
#undef DECLARE_REGEX_OPERATOR
#endif
#!/usr/bin/env python3
# Copyright (C) 2021 Hunter Kohler <[email protected]>
import itertools
FLAGS = ("icase", "nosubs", "optimize", "collate")
LANGS = ("ECMAScript", "basic", "extended", "awk", "grep", "egrep")
def header(body):
return r"""
/*
* Copyright (C) 2021 Hunter Kohler <[email protected]>
*/
#ifndef REGEX_OPERATORS_H_
#define REGEX_OPERATORS_H_
#include <string>
#include <regex>
#define DECLARE_REGEX_OPERATOR(NAME, FLAGS) \
inline auto operator"" NAME(const char *x) { return std::basic_regex(x, FLAGS); } \
inline auto operator"" NAME(unsigned long long int x) { return std::basic_regex(std::to_string(x), FLAGS); } \
inline auto operator"" NAME(long double x) { return std::basic_regex(std::to_string(x), FLAGS); } \
inline auto operator"" NAME(char x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(wchar_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char8_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char16_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char32_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(const char *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const wchar_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char8_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char16_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char32_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); }
"""[1:] + body + r"""
#undef DECLARE_REGEX_OPERATOR
#endif
"""
def decl_all():
s = []
for n in range(len(FLAGS) + 1):
for flags in itertools.permutations(FLAGS, n):
for lang in [*LANGS, None]:
name = "_re" + \
("_" + "".join(map(lambda x: x[0], flags))
if flags else "") + ("_" + lang if lang else "")
flagparams = [
lang if lang else "ECMAScript",
*flags
]
s.append(f"""
DECLARE_REGEX_OPERATOR({name}, {
' | '.join(map(lambda x: f'std::regex::{x}', flagparams))
})
""".strip())
return r"""
/*
* Copyright (C) 2021 Hunter Kohler <[email protected]>
*
* WARNING: AUTOGENERATED FILE, DO NOT EDIT DIRECTLY
*/
#ifndef REGEX_OPERATORS_H_
#define REGEX_OPERATORS_H_
#include <string>
#include <regex>
#define DECLARE_REGEX_OPERATOR(NAME, FLAGS) \
inline auto operator"" NAME(const char *x) { return std::basic_regex(x, FLAGS); } \
inline auto operator"" NAME(unsigned long long int x) { return std::basic_regex(std::to_string(x), FLAGS); } \
inline auto operator"" NAME(long double x) { return std::basic_regex(std::to_string(x), FLAGS); } \
inline auto operator"" NAME(char x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(wchar_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char8_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char16_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(char32_t x) { return std::basic_regex({ x }, FLAGS); } \
inline auto operator"" NAME(const char *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const wchar_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char8_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char16_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); } \
inline auto operator"" NAME(const char32_t *x, std::size_t size) { return std::basic_regex(x, size, FLAGS); }
"""[1:] + "\n".join(s) + r"""
#undef DECLARE_REGEX_OPERATOR
#endif
"""
print(decl_all(), file=open("./regex_operators.h", "w"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment