X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fregex.h;h=04f93cac5a05ab881733a2dba156d71fd6fbd7a7;hb=dae8555234f0e5c8358b91c307d91b219c664617;hp=eb3b679a8053711877c9029c4e2937fdbf10f89a;hpb=90b1f084bf0998e37ad3fa9f54641656044c448f;p=lyx.git diff --git a/src/support/regex.h b/src/support/regex.h index eb3b679a80..04f93cac5a 100644 --- a/src/support/regex.h +++ b/src/support/regex.h @@ -12,72 +12,60 @@ #ifndef LYX_REGEXP_H #define LYX_REGEXP_H -#if defined(LYX_USE_TR1) && defined(LYX_USE_TR1_REGEX) +#if __cplusplus >= 201103L && defined(LYX_USE_STD_REGEX) +# include # ifdef _MSC_VER -# include -# define match_partial _Match_partial namespace lyx { // inheriting 'private' to see which functions are used and if there are // other ECMAScrip defaults - class regex : private std::tr1::regex + class regex : private std::regex { public: regex() {} - regex(const regex& rhs) : std::tr1::regex(rhs) {} + regex(const regex& rhs) : std::regex(rhs) {} template - regex(T t) : std::tr1::regex(t, std::tr1::regex_constants::grep) {} + regex(T t) : std::regex(t, std::regex_constants::grep) {} template - void assign(T t) { std::tr1::regex::assign(t, std::tr1::regex_constants::grep); } + void assign(T t) { std::regex::assign(t, std::regex_constants::grep); } template - void assign(T t, V v) { std::tr1::regex::assign(t, v); } - const std::tr1::regex& toTr1() const { return *this; } + void assign(T t, V v) { std::regex::assign(t, v); } + const std::regex& toStd() const { return *this; } }; template - bool regex_match(T t, const regex& r) { return std::tr1::regex_match(t, r.toTr1()); } + bool regex_match(T t, const regex& r) { return std::regex_match(t, r.toStd()); } template - bool regex_match(T t, V v, const regex& r) { return std::tr1::regex_match(t, v, r.toTr1()); } + bool regex_match(T t, V v, const regex& r) { return std::regex_match(t, v, r.toStd()); } template - bool regex_match(T t, V v, H h, const regex& r, U u) { return std::tr1::regex_match(t, v, h, r.toTr1(), u); } + bool regex_match(T t, V v, H h, const regex& r, U u) { return std::regex_match(t, v, h, r.toStd(), u); } template - std::string regex_replace(T t, const regex& r, V v) { return std::tr1::regex_replace(t, r.toTr1(), v); } + std::string regex_replace(T t, const regex& r, V v) { return std::regex_replace(t, r.toStd(), v); } //template - //std::string regex_replace(T t, V v, U u, const regex& r, H h) { return std::tr1::regex_replace(t, v, u, r.toTr1(), h); } + //std::string regex_replace(T t, V v, U u, const regex& r, H h) { return std::regex_replace(t, v, u, r.toStd(), h); } template - bool regex_search(T t, const regex& r) { return std::tr1::regex_search(t, r.toTr1()); } + bool regex_search(T t, const regex& r) { return std::regex_search(t, r.toStd()); } template - bool regex_search(T t, V v, const regex& r) { return std::tr1::regex_search(t, v, r.toTr1()); } + bool regex_search(T t, V v, const regex& r) { return std::regex_search(t, v, r.toStd()); } template - bool regex_search(T t, V v, U u, const regex& r) { return std::tr1::regex_search(t, v, u, r.toTr1()); } + bool regex_search(T t, V v, U u, const regex& r) { return std::regex_search(t, v, u, r.toStd()); } - struct sregex_iterator : std::tr1::sregex_iterator + struct sregex_iterator : std::sregex_iterator { sregex_iterator() {} template - sregex_iterator(T t, V v, const regex& r) : std::tr1::sregex_iterator(t, v, r.toTr1()) {} + sregex_iterator(T t, V v, const regex& r) : std::sregex_iterator(t, v, r.toStd()) {} }; } # else -# include -// TODO no match_partial in TR1, how to replace? -# endif -# define LR_NS std::tr1 -namespace lyx { -using LR_NS::regex; -using LR_NS::regex_match; -using LR_NS::sregex_iterator; -} -#elif LYX_USE_TR1_REGEX -# include // in gcc is unusable in versions less than 4.9.0 // see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631 -// TODO no match_partial in std, how to replace? # define LR_NS std namespace lyx { using LR_NS::regex; using LR_NS::regex_match; using LR_NS::sregex_iterator; } -#else +# endif +#else # include # define LR_NS boost namespace lyx {