亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? type_traits.h

?? 粗慥集成算法集合 ,并有詳細的文檔資料和測試數據處
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
 *
 * Copyright (c) 1996,1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Copyright (c) 1997
 * Moscow Center for SPARC Technology
 *
 * Copyright (c) 1999 
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted 
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */

#ifndef __TYPE_TRAITS_H
#define __TYPE_TRAITS_H

/*
This header file provides a framework for allowing compile time dispatch
based on type attributes. This is useful when writing template code.
For example, when making a copy of an array of an unknown type, it helps
to know if the type has a trivial copy constructor or not, to help decide
if a memcpy can be used.

The class template __type_traits provides a series of typedefs each of
which is either __true_type or __false_type. The argument to
__type_traits can be any type. The typedefs within this template will
attain their correct values by one of these means:
    1. The general instantiation contain conservative values which work
       for all types.
    2. Specializations may be declared to make distinctions between types.
    3. Some compilers (such as the Silicon Graphics N32 and N64 compilers)
       will automatically provide the appropriate specializations for all
       types.

EXAMPLE:

//Copy an array of elements which have non-trivial copy constructors
template <class T> void copy(T* source, T* destination, int n, __false_type);
//Copy an array of elements which have trivial copy constructors. Use memcpy.
template <class T> void copy(T* source, T* destination, int n, __true_type);

//Copy an array of any type by using the most efficient copy mechanism
template <class T> inline void copy(T* source,T* destination,int n) {
   copy(source, destination, n,
        typename __type_traits<T>::has_trivial_copy_constructor());
}
*/


struct __true_type {
};

struct __false_type {
};

template <class _Tp>
struct __type_traits { 
   typedef __true_type     this_dummy_member_must_be_first;
                   /* Do not remove this member. It informs a compiler which
                      automatically specializes __type_traits that this
                      __type_traits template is special. It just makes sure that
                      things work if an implementation is using a template
                      called __type_traits for something unrelated. */

   /* The following restrictions should be observed for the sake of
      compilers which automatically produce type specific specializations 
      of this class:
          - You may reorder the members below if you wish
          - You may remove any of the members below if you wish
          - You must not rename members without making the corresponding
            name change in the compiler
          - Members you add will be treated like regular members unless
            you add the appropriate support in the compiler. */
 

   typedef __false_type    has_trivial_default_constructor;
   typedef __false_type    has_trivial_copy_constructor;
   typedef __false_type    has_trivial_assignment_operator;
   typedef __false_type    has_trivial_destructor;
   typedef __false_type    is_POD_type;
};



// Provide some specializations.  This is harmless for compilers that
//  have built-in __types_traits support, and essential for compilers
//  that don't.

#ifndef __STL_NO_BOOL

__STL_TEMPLATE_NULL struct __type_traits<bool> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

#endif /* __STL_NO_BOOL */

__STL_TEMPLATE_NULL struct __type_traits<char> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

#ifndef __STL_NO_SIGNED_BUILTINS

__STL_TEMPLATE_NULL struct __type_traits<signed char> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

# endif

__STL_TEMPLATE_NULL struct __type_traits<unsigned char> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

#if defined ( __STL_HAS_WCHAR_T ) && ! defined (__STL_WCHAR_T_IS_USHORT)

__STL_TEMPLATE_NULL struct __type_traits<wchar_t> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

#endif /* __STL_HAS_WCHAR_T */

__STL_TEMPLATE_NULL struct __type_traits<short> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<unsigned short> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<int> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<unsigned int> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<long> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<unsigned long> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

#ifdef __STL_LONG_LONG

__STL_TEMPLATE_NULL struct __type_traits<long long> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<unsigned long long> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

#endif /* __STL_LONG_LONG */

__STL_TEMPLATE_NULL struct __type_traits<float> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

__STL_TEMPLATE_NULL struct __type_traits<double> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};

# if !defined ( __STL_NO_LONG_DOUBLE )
__STL_TEMPLATE_NULL struct __type_traits<long double> {
   typedef __true_type    has_trivial_default_constructor;
   typedef __true_type    has_trivial_copy_constructor;
   typedef __true_type    has_trivial_assignment_operator;
   typedef __true_type    has_trivial_destructor;
   typedef __true_type    is_POD_type;
};
# endif

#ifdef __STL_CLASS_PARTIAL_SPECIALIZATION

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级二级三级蜜桃| 欧美日韩精品一区二区| 欧美专区在线观看一区| 精品国产一区二区三区久久久蜜月| 欧美激情在线看| 老司机精品视频在线| 欧洲亚洲精品在线| 国产欧美一区二区精品性色| 日本欧美一区二区| 色妞www精品视频| 欧美韩国日本综合| 狠狠色丁香久久婷婷综合_中 | 国产精品成人午夜| 激情综合色播五月| 欧美精品 日韩| 亚洲综合免费观看高清完整版| 成人一道本在线| 久久久另类综合| 久久国产三级精品| 日韩一区二区高清| 午夜精品免费在线| 在线观看网站黄不卡| 中文字幕亚洲综合久久菠萝蜜| 国产伦精品一区二区三区免费迷| 欧美大度的电影原声| 男女性色大片免费观看一区二区| 欧美丝袜第三区| 一区二区三区波多野结衣在线观看| 成人av集中营| 免费看日韩精品| 久久亚洲捆绑美女| 国产精品免费看片| 国产精品一区三区| 久久久777精品电影网影网 | 成人激情小说网站| 亚洲成人激情综合网| 精品国产乱码久久久久久老虎 | 国产三级三级三级精品8ⅰ区| 91一区二区三区在线观看| 视频一区视频二区中文| 亚洲国产成人午夜在线一区| 制服丝袜亚洲色图| www.亚洲人| 久久国产精品免费| 亚洲国产精品自拍| 国产精品拍天天在线| 精品国偷自产国产一区| 欧美理论电影在线| 91久久精品日日躁夜夜躁欧美| 亚洲国产成人午夜在线一区| 4438x成人网最大色成网站| 99久久99久久精品国产片果冻| 精品无人码麻豆乱码1区2区 | 日韩一区二区免费高清| 99久久精品免费精品国产| 精品一区二区在线视频| 亚洲曰韩产成在线| 国产精品色眯眯| 久久久亚洲高清| 欧美大片顶级少妇| 日韩一级完整毛片| 欧美精品一卡两卡| 欧美少妇bbb| 91丨porny丨蝌蚪视频| 成人一级黄色片| 懂色av一区二区在线播放| 国产在线精品一区在线观看麻豆| 日韩精品色哟哟| 亚洲一区二区三区在线播放| 亚洲精品日韩专区silk| 亚洲美女屁股眼交| 亚洲人成7777| 亚洲黄色在线视频| 亚洲与欧洲av电影| 五月天精品一区二区三区| 午夜在线成人av| 午夜一区二区三区视频| 亚洲福中文字幕伊人影院| 亚洲综合丁香婷婷六月香| 亚洲一区影音先锋| 五月天久久比比资源色| 秋霞午夜鲁丝一区二区老狼| 琪琪一区二区三区| 黄网站免费久久| 亚洲女女做受ⅹxx高潮| 亚洲激情自拍偷拍| 婷婷中文字幕综合| 捆绑紧缚一区二区三区视频| 美女网站在线免费欧美精品| 国产在线视视频有精品| 成人综合婷婷国产精品久久蜜臀| 国产成人99久久亚洲综合精品| 不卡的电影网站| 91欧美一区二区| 欧美性感一类影片在线播放| 欧美日韩一区久久| 欧美一区二区三区四区视频| 久久综合狠狠综合久久综合88 | 亚洲人成网站在线| 亚洲一级不卡视频| 老汉av免费一区二区三区| 国产不卡视频一区| 欧美在线免费视屏| 日韩欧美在线观看一区二区三区| 国产日韩欧美在线一区| 亚洲免费观看视频| 日本视频免费一区| 丁香网亚洲国际| 欧美日韩三级在线| 久久网这里都是精品| 亚洲欧美日韩国产手机在线| 成人免费毛片高清视频| 色综合av在线| 日韩欧美国产午夜精品| 国产精品你懂的| 手机精品视频在线观看| 国产福利不卡视频| 欧美猛男超大videosgay| 欧美激情一区二区| 日韩电影在线看| 成人av网站在线| 91精品国产欧美一区二区| 中文字幕av免费专区久久| 日韩av电影免费观看高清完整版在线观看| 精品一区二区三区在线播放视频| 99视频在线精品| 欧美va亚洲va国产综合| 亚洲女同一区二区| 国产在线播放一区三区四| 欧美日韩一区二区不卡| 国产日产亚洲精品系列| 日本免费在线视频不卡一不卡二 | 亚洲国产日产av| 国产激情偷乱视频一区二区三区| 欧美色中文字幕| 国产精品你懂的| 国产一区二区电影| 91精品久久久久久久久99蜜臂| 国产精品国产自产拍在线| 久久精品免费看| 欧美日韩一卡二卡| 亚洲人成在线播放网站岛国| 国产传媒日韩欧美成人| 日韩精品中午字幕| 亚洲成人免费视| av不卡免费在线观看| 久久久久亚洲蜜桃| 精品一区二区三区香蕉蜜桃| 欧美日韩精品专区| 亚洲中国最大av网站| 91免费在线看| 亚洲欧美另类综合偷拍| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩你懂的| 亚洲免费伊人电影| 色综合久久中文字幕| 中文字幕日韩精品一区| av网站一区二区三区| 国产欧美日韩麻豆91| 国产成人精品一区二| 国产欧美精品一区二区三区四区 | 亚洲已满18点击进入久久| www.久久精品| 国产精品成人网| 久久一二三国产| 日本aⅴ免费视频一区二区三区| 欧美伊人久久久久久久久影院 | 欧美中文字幕一区二区三区亚洲| 亚洲色图20p| 91亚洲精华国产精华精华液| 国产精品不卡在线| 色婷婷国产精品| 亚洲一区二区综合| 欧美午夜精品久久久久久孕妇| 亚洲宅男天堂在线观看无病毒| 欧美性极品少妇| 日韩影视精彩在线| 日韩欧美www| 久久九九国产精品| 肉丝袜脚交视频一区二区| 欧美久久婷婷综合色| 日精品一区二区| 日韩欧美亚洲另类制服综合在线| 日本亚洲一区二区| 精品美女一区二区三区| 国产剧情一区二区三区| 国产精品麻豆一区二区| 色哟哟一区二区| 午夜电影久久久| 久久综合网色—综合色88| 国产成人在线电影| 综合自拍亚洲综合图不卡区| 在线视频一区二区三| 日韩 欧美一区二区三区| 久久老女人爱爱| 色婷婷av一区二区三区软件| 青青草国产精品97视觉盛宴| 久久影院午夜论| 色综合久久综合网| 免费在线看一区|