https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70977

--- Comment #7 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
markus@x4 tmp % cat Acceptor-c++14.ii
namespace __gnu_cxx {
namespace __ops {
struct _Iter_less_iter {
  template <typename _Iterator1, typename _Iterator2>
  constexpr int operator()(_Iterator1, _Iterator2 __it2) {
    return *__it2;
  }
};
constexpr _Iter_less_iter __iter_less_iter() { return _Iter_less_iter(); }
}
}
namespace std {
template <class> struct initializer_list {
  typedef int *const_iterator;
  int *_M_array;
  unsigned long size;
  constexpr const_iterator begin() { return _M_array; }
  constexpr const_iterator end() { return 0; }
};
template <typename _FIter> constexpr _FIter max_element(_FIter, _FIter);
template <typename _Tp> constexpr _Tp max(initializer_list<_Tp> __l) {
  max_element(__l.begin(), __l.end());
}
template <typename _ForwardIterator, typename _Compare>
constexpr _ForwardIterator __max_element(_ForwardIterator __first,
                                         _ForwardIterator, _Compare __comp) {
  __comp(0, __first);
}
template <typename _ForwardIterator>
constexpr _ForwardIterator max_element(_ForwardIterator __first,
                                       _ForwardIterator __last) {
  __max_element(__first, __last, __gnu_cxx::__ops::__iter_less_iter());
}
template <class> void estimateSpaceNeeded() {
  const int kMaxPositiveSpace = max({0});
}
}

markus@x4 tmp % g++ -c Acceptor-c++14.ii
<<OOM killer kicks in>>

Reply via email to