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