1*67e74705SXin Li #ifndef _LIBCPP_ALGORITHM 2*67e74705SXin Li #define _LIBCPP_ALGORITHM 3*67e74705SXin Li template <class _Tp, _Tp> 4*67e74705SXin Li struct integral_constant { 5*67e74705SXin Li static const _Tp value = _Tp(); 6*67e74705SXin Li }; 7*67e74705SXin Li 8*67e74705SXin Li template <class _Tp> 9*67e74705SXin Li struct is_nothrow_default_constructible 10*67e74705SXin Li : integral_constant<bool, __is_constructible(_Tp)> {}; 11*67e74705SXin Li 12*67e74705SXin Li template <class _Tp> 13*67e74705SXin Li struct is_nothrow_move_constructible 14*67e74705SXin Li : integral_constant<bool, __is_constructible(_Tp, _Tp)> {}; 15*67e74705SXin Li 16*67e74705SXin Li class allocator {}; 17*67e74705SXin Li #endif 18