__type_traits
typedef typename __type_traits<_Tp>::has_trivial_assignment_operator
typedef typename __type_traits<typename iterator_traits<_BI2>::value_type>
typedef typename __type_traits<_Tp>::has_trivial_destructor
typedef typename __type_traits<_Tp>::has_trivial_default_constructor
typedef typename __type_traits<_Tp1>::is_POD_type _Is_POD;
typedef typename __type_traits<_Tp1>::is_POD_type _Is_POD;
typedef typename __type_traits<_Tp>::is_POD_type _Is_POD;
__STL_TEMPLATE_NULL struct __type_traits<char> {
__STL_TEMPLATE_NULL struct __type_traits<signed char> {
__STL_TEMPLATE_NULL struct __type_traits<unsigned char> {
__STL_TEMPLATE_NULL struct __type_traits<wchar_t> {
__STL_TEMPLATE_NULL struct __type_traits<short> {
__STL_TEMPLATE_NULL struct __type_traits<unsigned short> {
__STL_TEMPLATE_NULL struct __type_traits<int> {
__STL_TEMPLATE_NULL struct __type_traits<unsigned int> {
__STL_TEMPLATE_NULL struct __type_traits<long> {
__STL_TEMPLATE_NULL struct __type_traits<unsigned long> {
__STL_TEMPLATE_NULL struct __type_traits<long long> {
__STL_TEMPLATE_NULL struct __type_traits<unsigned long long> {
__STL_TEMPLATE_NULL struct __type_traits<float> {
__STL_TEMPLATE_NULL struct __type_traits<double> {
__STL_TEMPLATE_NULL struct __type_traits<long double> {
struct __type_traits<_Tp*> {
__STL_TEMPLATE_NULL struct __type_traits<char*> {
__STL_TEMPLATE_NULL struct __type_traits<signed char*> {
__STL_TEMPLATE_NULL struct __type_traits<unsigned char*> {
__STL_TEMPLATE_NULL struct __type_traits<const char*> {
__STL_TEMPLATE_NULL struct __type_traits<const signed char*> {
__STL_TEMPLATE_NULL struct __type_traits<const unsigned char*> {
__STL_TEMPLATE_NULL struct __type_traits<bool> {