diff --git a/peglib.h b/peglib.h index 487a9f5..6202d9f 100644 --- a/peglib.h +++ b/peglib.h @@ -23,6 +23,18 @@ #include #include +// guard for older versions of VC++ +#ifdef _MSC_VER +// VS2013 has no constexpr +#if (_MSC_VER == 1800) +#define PEGLIB_NO_CONSTEXPR_SUPPORT +#elif (_MSC_VER >= 1800) +// good to go +#else (_MSC_VER < 1800) +#error "Requires C+11 support" +#endif +#endif + namespace peg { extern void* enabler; @@ -2479,7 +2491,7 @@ public: peg_token_iterator() : s_(nullptr) , l_(0) - , pos_(std::numeric_limits::max()) {} + , pos_((std::numeric_limits::max)()) {} peg_token_iterator(const char* syntax, const char* s) : peg_(syntax) @@ -2534,7 +2546,7 @@ private: m_.matches.insert(m_.matches.begin(), match::Item{ s_ + mpos, mlen, 0 }); pos_ += mpos + mlen; } else { - pos_ = std::numeric_limits::max(); + pos_ = (std::numeric_limits::max)(); } }