1 #pragma clang system_header 2 3 namespace std { 4 5 template<class T, T v> 6 struct integral_constant { 7 static constexpr T value = v; 8 typedef T value_type; 9 typedef integral_constant type; value_typeintegral_constant10 constexpr operator value_type() const noexcept { return value; } 11 }; 12 13 template <bool B> 14 using bool_constant = integral_constant<bool, B>; 15 using true_type = bool_constant<true>; 16 using false_type = bool_constant<false>; 17 18 template<class T> 19 struct is_error_code_enum : false_type {}; 20 21 template<class T> 22 void swap(T &a, T &b); 23 } 24 25