This in cpp:
template<class T>
constexpr const T& max(const T& a, const T& b) {
return a>b ? a : b;
} template<class T>
constexpr const T& max(const T& a, const T& b) {
return a>b ? a : b;
} template<typename T>
inline constexpr const T& max(const T& a, const T& b) {
return (b < a ? a : b);
}