亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
99久久精品国产一区二区三区| 日韩一级欧美一级| 51精品视频一区二区三区| 久久五月婷婷丁香社区| 亚洲国产精品麻豆| 91在线观看免费视频| 精品成人私密视频| 日韩高清欧美激情| 欧美私模裸体表演在线观看| 亚洲国产精品av| 久久精品久久综合| 欧美精品18+| 亚洲国产精品影院| 91久久人澡人人添人人爽欧美| 欧美激情一区二区三区全黄| 久久激情综合网| 91麻豆精品91久久久久久清纯| 中文字幕在线观看一区| 国产成人免费视频网站| 久久免费偷拍视频| 精品一区二区日韩| 久久影院视频免费| 黄页网站大全一区二区| 日韩免费一区二区三区在线播放| 亚洲国产精品精华液网站| 欧洲在线/亚洲| 一区二区三区久久久| 色综合色狠狠综合色| 亚洲精品视频在线观看免费| 99re视频精品| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美a级一区二区| 色一情一伦一子一伦一区| 亚洲欧洲日本在线| 91麻豆产精品久久久久久| 亚洲视频你懂的| 91一区在线观看| 亚洲一区免费视频| 欧美视频一区二区三区四区| 爽好久久久欧美精品| 欧美一级搡bbbb搡bbbb| 久久国产精品99久久人人澡| 26uuu国产在线精品一区二区| 久久福利资源站| 久久久噜噜噜久久人人看 | 亚洲午夜在线观看视频在线| 欧美日韩一区视频| 久久精品国产网站| 国产三级一区二区| 色94色欧美sute亚洲13| 日本中文字幕不卡| 久久久久97国产精华液好用吗| 丁香啪啪综合成人亚洲小说| 亚洲欧美一区二区三区久本道91 | 亚洲综合激情网| 91精品国产一区二区| 狠狠色丁香九九婷婷综合五月| 国产精品网站一区| 欧美日韩中文字幕精品| 寂寞少妇一区二区三区| 1区2区3区精品视频| 这里只有精品99re| 97久久人人超碰| 爽好多水快深点欧美视频| 亚洲精品一区二区三区福利| 91免费观看在线| 免费观看日韩电影| 中文字幕亚洲精品在线观看 | 六月丁香婷婷久久| 国产精品女主播av| 在线综合亚洲欧美在线视频| 成人av电影观看| 美女在线视频一区| 亚洲综合在线免费观看| 精品国产凹凸成av人导航| 91精品办公室少妇高潮对白| 国产一区二区三区四区五区入口 | 欧美日韩在线三级| 从欧美一区二区三区| 亚洲大型综合色站| 国产精品免费视频网站| 日韩无一区二区| 一本久道久久综合中文字幕| 久久成人免费日本黄色| 亚洲香肠在线观看| 国产精品灌醉下药二区| 欧美精品一区二区三区很污很色的| 色香蕉成人二区免费| 国产成人综合在线观看| 日韩和欧美一区二区三区| 一区二区三区四区激情 | 亚洲一区二区影院| 中文av一区二区| 精品日韩av一区二区| 欧美另类z0zxhd电影| 欧美在线高清视频| 91浏览器打开| 91一区在线观看| 成人av免费在线| 成人精品小蝌蚪| 岛国一区二区三区| 国产精品一区二区你懂的| 免费亚洲电影在线| 午夜欧美在线一二页| 亚洲高清三级视频| 亚洲福利视频三区| 亚洲超碰97人人做人人爱| 亚洲国产综合视频在线观看| 亚洲免费观看在线视频| 中文字幕一区二区5566日韩| 中文字幕成人av| 国产精品欧美一区喷水| 亚洲国产精品精华液2区45| 久久综合久久综合亚洲| 精品久久一二三区| 久久久蜜桃精品| 国产欧美一区二区三区沐欲| 日本一区二区三区免费乱视频| 国产无遮挡一区二区三区毛片日本| 国产亚洲一本大道中文在线| 久久天堂av综合合色蜜桃网| 久久久久久久综合日本| 国产日韩欧美a| 亚洲欧洲成人精品av97| 亚洲与欧洲av电影| 亚洲18色成人| 久久精品国产一区二区三| 国产一区二区免费视频| 成人丝袜视频网| 91免费在线看| 91精品欧美久久久久久动漫 | 精品无人码麻豆乱码1区2区| 国产一区二区导航在线播放| 丁香激情综合国产| 91麻豆国产精品久久| 777奇米成人网| 国产丝袜欧美中文另类| 一区二区三区在线免费视频| 亚洲va韩国va欧美va| 久久激五月天综合精品| 波多野结衣在线aⅴ中文字幕不卡| av爱爱亚洲一区| 制服丝袜国产精品| 国产欧美日韩中文久久| 亚洲精品国产一区二区精华液 | 欧美一区二区高清| 久久久综合视频| 亚洲一区二区四区蜜桃| 精品亚洲国内自在自线福利| 成人激情免费视频| 3d动漫精品啪啪1区2区免费| 国产精品视频九色porn| 亚洲成av人影院| 成人天堂资源www在线| 7777精品伊人久久久大香线蕉经典版下载 | 国产麻豆精品95视频| 91麻豆免费视频| 日韩视频一区在线观看| 亚洲伦理在线精品| 国产呦精品一区二区三区网站 | av亚洲精华国产精华精华| 91麻豆精品国产无毒不卡在线观看| 久久伊99综合婷婷久久伊| 亚洲一区欧美一区| 国产成人免费在线观看| 欧美一区二区日韩一区二区| 亚洲狼人国产精品| 国产精品亚洲一区二区三区在线| 在线一区二区视频| 国产精品视频一二三区| 激情文学综合丁香| 欧美人与禽zozo性伦| 亚洲欧洲av另类| 国产成人免费在线观看不卡| 日韩精品一区二区三区蜜臀| 亚洲高清免费在线| 色呦呦国产精品| 国产精品视频第一区| 国产高清视频一区| 精品国产三级a在线观看| 日韩中文字幕av电影| 在线视频一区二区三| 国产精品久久久久久久岛一牛影视| 久草精品在线观看| 欧美一级日韩一级| 日韩精品亚洲专区| 欧美精品色综合| 亚洲一二三区在线观看| 一本高清dvd不卡在线观看| 国产精品美女一区二区三区| 国产精品456| 国产亚洲精品久| 国产一区二区精品久久91| 久久综合色8888| 国产成人亚洲综合a∨婷婷图片| 精品国产1区2区3区| 国产精品自拍网站| 国产偷国产偷精品高清尤物| 国产精品一区免费视频| 国产清纯美女被跳蛋高潮一区二区久久w |