Skip to content

Commit

Permalink
Fix for ancient min/max macros in windows.h
Browse files Browse the repository at this point in the history
Disable constexpr for VS2013
Guard against older versions of VC++
  • Loading branch information
g40 committed Nov 23, 2015
1 parent 1247271 commit c276021
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions peglib.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@
#include <unordered_map>
#include <vector>

// 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;
Expand Down Expand Up @@ -2479,7 +2491,7 @@ class peg_token_iterator : public std::iterator<std::forward_iterator_tag, match
peg_token_iterator()
: s_(nullptr)
, l_(0)
, pos_(std::numeric_limits<size_t>::max()) {}
, pos_((std::numeric_limits<size_t>::max)()) {}

peg_token_iterator(const char* syntax, const char* s)
: peg_(syntax)
Expand Down Expand Up @@ -2534,7 +2546,7 @@ class peg_token_iterator : public std::iterator<std::forward_iterator_tag, match
m_.matches.insert(m_.matches.begin(), match::Item{ s_ + mpos, mlen, 0 });
pos_ += mpos + mlen;
} else {
pos_ = std::numeric_limits<size_t>::max();
pos_ = (std::numeric_limits<size_t>::max)();
}
}

Expand Down

0 comments on commit c276021

Please sign in to comment.