https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101587
--- Comment #2 from 康桓瑋 <hewillk at gmail dot com> --- (In reply to Jonathan Wakely from comment #1) > Maybe we should add this somewhere and just stop using std::min for integers: > > struct __min_fn > { > template<typename _Tp, typename _Up> > typename common_type<_Tp, _Up>::type > operator()(_Tp __t, _Up __u) const noexcept > { return std::min<typename common_type<_Tp, _Up>::type>(__t, __u); } > }; > _GLIBCXX17_INLINE constexpr __min_fn __min{}; It may cause problems when comparing integers with different signedness.