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

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

?? typet.hpp

?? C++ Templates 完全導引范例
?? HPP
字號:
/* The following code example is taken from the book * "C++ Templates - The Complete Guide" * by David Vandevoorde and Nicolai M. Josuttis, Addison-Wesley, 2002 * * (C) Copyright David Vandevoorde and Nicolai M. Josuttis 2002. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */#ifndef TYPET_HPP#define TYPET_HPP// define IsFundaT<>/********************************** * type1.hpp: **********************************/// primary template: in general T is no fundamental typetemplate <typename T>class IsFundaT {  public:    enum { Yes = 0, No = 1};};// macro to specialize for fundamental types#define MK_FUNDA_TYPE(T)               \    template<> class IsFundaT<T> {     \      public:                          \        enum { Yes = 1, No = 0 };      \    };MK_FUNDA_TYPE(void)MK_FUNDA_TYPE(bool)MK_FUNDA_TYPE(char)MK_FUNDA_TYPE(signed char)MK_FUNDA_TYPE(unsigned char)MK_FUNDA_TYPE(wchar_t)MK_FUNDA_TYPE(signed short)MK_FUNDA_TYPE(unsigned short)MK_FUNDA_TYPE(signed int)MK_FUNDA_TYPE(unsigned int)MK_FUNDA_TYPE(signed long)MK_FUNDA_TYPE(unsigned long)#if LONGLONG_EXISTS  MK_FUNDA_TYPE(signed long long)  MK_FUNDA_TYPE(unsigned long long)#endif  // LONGLONG_EXISTSMK_FUNDA_TYPE(float)MK_FUNDA_TYPE(double)MK_FUNDA_TYPE(long double)#undef MK_FUNDA_TYPE/**** end of type1.hpp ****/// define primary template CompoundT<> (first version)//#include "type2.hpp"// define primary template CompoundT<> (second version)/********************************** * type6.hpp: **********************************/template<typename T>class IsFunctionT {  private:    typedef char One;    typedef struct { char a[2]; } Two;    template<typename U> static One test(...);    template<typename U> static Two test(U (*)[1]);  public:    enum { Yes = sizeof(IsFunctionT<T>::test<T>(0)) == 1 };    enum { No = !Yes };};template<typename T>class IsFunctionT<T&> {  public:    enum { Yes = 0 };    enum { No = !Yes };};template<>class IsFunctionT<void> {  public:    enum { Yes = 0 };    enum { No = !Yes };};template<>class IsFunctionT<void const> {  public:    enum { Yes = 0 };    enum { No = !Yes };};// same for void volatile and void const volatile//...template<typename T>class CompoundT {           // primary template  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = IsFunctionT<T>::Yes,           IsPtrMemT = 0 };    typedef T BaseT;    typedef T BottomT;    typedef CompoundT<void> ClassT;};/**** end of type6.hpp ****/// define CompoundT<> specializations/********************************** * type3.hpp: **********************************/template<typename T>class CompoundT<T&> {       // partial specialization for references  public:    enum { IsPtrT = 0, IsRefT = 1, IsArrayT = 0,           IsFuncT = 0, IsPtrMemT = 0 };    typedef T BaseT;    typedef typename CompoundT<T>::BottomT BottomT;    typedef CompoundT<void> ClassT;};template<typename T>class CompoundT<T*> {       // partial specialization for pointers  public:    enum { IsPtrT = 1, IsRefT = 0, IsArrayT = 0,           IsFuncT = 0, IsPtrMemT = 0 };    typedef T BaseT;    typedef typename CompoundT<T>::BottomT BottomT;    typedef CompoundT<void> ClassT;};/**** end of type3.hpp ****//********************************** * type4.hpp: **********************************/#include <stddef.h>template<typename T, size_t N>class CompoundT <T[N]> {    // partial specialization for arrays  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 1,           IsFuncT = 0, IsPtrMemT = 0 };    typedef T BaseT;    typedef typename CompoundT<T>::BottomT BottomT;    typedef CompoundT<void> ClassT;};template<typename T>class CompoundT <T[]> {    // partial specialization for empty arrays  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 1,           IsFuncT = 0, IsPtrMemT = 0 };    typedef T BaseT;    typedef typename CompoundT<T>::BottomT BottomT;    typedef CompoundT<void> ClassT;};template<typename T, typename C>class CompoundT <T C::*> {  // partial specialization for pointer-to-members  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = 0, IsPtrMemT = 1 };    typedef T BaseT;    typedef typename CompoundT<T>::BottomT BottomT;    typedef C ClassT;};/**** end of type4.hpp ****//********************************** * type5.hpp: **********************************/template<typename R>class CompoundT<R()> {  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = 1, IsPtrMemT = 0 };    typedef R BaseT();    typedef R BottomT();    typedef CompoundT<void> ClassT;};template<typename R, typename P1>class CompoundT<R(P1)> {  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = 1, IsPtrMemT = 0 };    typedef R BaseT(P1);    typedef R BottomT(P1);    typedef CompoundT<void> ClassT;};template<typename R, typename P1>class CompoundT<R(P1, ...)> {  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = 1, IsPtrMemT = 0 };    typedef R BaseT(P1);    typedef R BottomT(P1);    typedef CompoundT<void> ClassT;};//.../**** end of type5.hpp ****/// define IsEnumT<>/********************************** * type7.hpp: **********************************/struct SizeOverOne { char c[2]; };template<typename T,         bool convert_possible = !CompoundT<T>::IsFuncT &&                                 !CompoundT<T>::IsArrayT>class ConsumeUDC {  public:    operator T() const;};// conversion to function types is not possibletemplate <typename T>class ConsumeUDC<T, false> {};// conversion to void type is not possibletemplate <bool convert_possible>class ConsumeUDC<void, convert_possible> {};char enum_check(bool);char enum_check(char);char enum_check(signed char);char enum_check(unsigned char);char enum_check(wchar_t);char enum_check(signed short);char enum_check(unsigned short);char enum_check(signed int);char enum_check(unsigned int);char enum_check(signed long);char enum_check(unsigned long);#if LONGLONG_EXISTS  char enum_check(signed long long);  char enum_check(unsigned long long);#endif  // LONGLONG_EXISTS// avoid accidental conversions from float to intchar enum_check(float);char enum_check(double);char enum_check(long double);SizeOverOne enum_check(...);    // catch alltemplate<typename T>class IsEnumT {  public:    enum { Yes = IsFundaT<T>::No &&                 !CompoundT<T>::IsRefT &&                 !CompoundT<T>::IsPtrT &&                 !CompoundT<T>::IsPtrMemT &&                 sizeof(enum_check(ConsumeUDC<T>()))==1 };    enum { No = !Yes };};/**** end of type7.hpp ****/// define IsClassT<>/********************************** * type8.hpp: **********************************/template<typename T>class IsClassT {  public:    enum { Yes = IsFundaT<T>::No &&                 IsEnumT<T>::No &&                 !CompoundT<T>::IsPtrT &&                 !CompoundT<T>::IsRefT &&                 !CompoundT<T>::IsArrayT &&                 !CompoundT<T>::IsPtrMemT &&                 !CompoundT<T>::IsFuncT };    enum { No = !Yes };};/**** end of type8.hpp ****/// define template that handles all in one styletemplate <typename T>class TypeT {  public:    enum { IsFundaT  = IsFundaT<T>::Yes,           IsPtrT    = CompoundT<T>::IsPtrT,           IsRefT    = CompoundT<T>::IsRefT,           IsArrayT  = CompoundT<T>::IsArrayT,           IsFuncT   = CompoundT<T>::IsFuncT,           IsPtrMemT = CompoundT<T>::IsPtrMemT,           IsEnumT   = IsEnumT<T>::Yes,           IsClassT  = IsClassT<T>::Yes };};#endif // TYPET_HPP

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色图免费看| 视频一区二区中文字幕| 成人h动漫精品一区二区| 国产日韩av一区| 夫妻av一区二区| 亚洲精品自拍动漫在线| 欧美三级视频在线| 人妖欧美一区二区| 久久久亚洲高清| 91在线观看一区二区| 亚洲综合无码一区二区| 5566中文字幕一区二区电影| 免费精品视频在线| 国产精品网曝门| 91福利国产精品| 老司机精品视频一区二区三区| 久久先锋影音av| 9l国产精品久久久久麻豆| 亚洲视频你懂的| 精品嫩草影院久久| a美女胸又www黄视频久久| 亚洲一二三四在线| 精品久久免费看| 日本精品免费观看高清观看| 午夜欧美一区二区三区在线播放| 26uuu国产日韩综合| 色婷婷狠狠综合| 另类小说一区二区三区| 中文字幕亚洲在| 欧美日韩性生活| 成人一区二区三区视频| 亚洲成人精品一区二区| 国产喷白浆一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产一区二区三区精品视频| 亚洲另类春色国产| 久久久久国产精品厨房| 欧美高清视频在线高清观看mv色露露十八 | 色婷婷国产精品久久包臀| 日韩av电影天堂| 亚洲毛片av在线| 国产香蕉久久精品综合网| 欧美日韩一区二区欧美激情| 制服丝袜av成人在线看| 亚洲欧美日韩在线| 日韩精品一区二区在线| caoporm超碰国产精品| 精品一区二区三区免费播放| 亚洲一区二区三区自拍| 中文字幕一区av| 久久久影院官网| 日韩欧美中文一区二区| 欧美亚洲图片小说| aaa欧美色吧激情视频| 国产盗摄女厕一区二区三区| 丝袜美腿亚洲一区二区图片| 亚洲美女电影在线| 国产精品美女久久久久aⅴ国产馆| 欧美一区永久视频免费观看| 欧美午夜精品电影| 色先锋资源久久综合| av激情综合网| 国产成人综合网站| 久久国产精品99久久久久久老狼| 午夜婷婷国产麻豆精品| 亚洲天堂精品在线观看| 国产精品无人区| 国产精品免费av| 亚洲国产精品精华液ab| 久久看人人爽人人| 久久亚洲捆绑美女| 26uuu精品一区二区三区四区在线| 欧美一区在线视频| 日韩欧美电影在线| 日韩限制级电影在线观看| 777久久久精品| 555www色欧美视频| 欧美一级黄色录像| 日韩三级精品电影久久久| 69av一区二区三区| 日韩一区二区三区电影在线观看| 制服丝袜av成人在线看| 欧美大尺度电影在线| 欧美成人三级电影在线| 精品欧美乱码久久久久久| 久久久久久日产精品| 国产午夜亚洲精品午夜鲁丝片| 久久精品一区蜜桃臀影院| 中文字幕精品一区二区精品绿巨人 | 精品久久久久一区| 久久久久久久久免费| 国产日韩欧美制服另类| 国产精品麻豆99久久久久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩精品福利网| 蜜臀av国产精品久久久久| 韩日av一区二区| 成人av午夜影院| 欧美亚洲国产bt| 欧美一区二区美女| 久久久青草青青国产亚洲免观| 国产精品美女久久久久久| 亚洲午夜电影网| 久色婷婷小香蕉久久| 成人永久aaa| 欧美综合一区二区三区| 日韩欧美一区在线观看| 日本一区二区视频在线| 一区二区三区四区视频精品免费 | 久久午夜电影网| 亚洲欧洲成人av每日更新| 亚洲一区二区三区四区在线 | 91精品综合久久久久久| 久久久久久久av麻豆果冻| 成人免费一区二区三区视频 | 久久亚洲精品国产精品紫薇| 亚洲欧美日韩人成在线播放| 日本欧美肥老太交大片| 国产九色精品成人porny| 亚洲国产乱码最新视频| 日韩一区欧美小说| 美女一区二区久久| 91色|porny| 久久综合久久综合久久综合| 一区二区三区.www| 国产福利一区在线观看| 欧美精品色综合| 国产精品久久久久一区| 美腿丝袜亚洲三区| 色噜噜狠狠成人中文综合| 久久午夜色播影院免费高清| 午夜精品爽啪视频| 成人国产在线观看| 欧美电影免费观看高清完整版在线观看| 国产精品毛片a∨一区二区三区 | 久久99精品久久久久久国产越南| 99国产精品久久久久久久久久 | 欧美日韩精品免费| 国产精品夫妻自拍| 激情五月婷婷综合网| 91精品国产色综合久久不卡电影| 中文字幕在线不卡国产视频| 国产专区综合网| 91精品国产免费| 一区2区3区在线看| jvid福利写真一区二区三区| 久久久久久久久久久黄色| 老司机免费视频一区二区三区| 欧美在线观看一二区| 中文字幕中文乱码欧美一区二区| 激情综合色综合久久| 欧美裸体一区二区三区| 亚洲综合精品久久| 欧美综合色免费| 亚洲乱码日产精品bd| 成人av先锋影音| 中文字幕一区二区三区蜜月| 成人激情免费网站| 国产欧美日韩久久| 国产呦精品一区二区三区网站| 制服丝袜亚洲色图| 亚洲18影院在线观看| 欧美天堂亚洲电影院在线播放| 亚洲视频在线观看一区| 94-欧美-setu| 亚洲图片另类小说| 在线免费观看不卡av| 亚洲自拍都市欧美小说| 欧美日韩成人综合在线一区二区| 亚洲影院理伦片| 欧美视频一区二区三区在线观看| 一区二区日韩电影| 在线观看一区日韩| 丝袜美腿一区二区三区| 欧美一区二区三区精品| 激情综合色综合久久| 久久精品亚洲一区二区三区浴池| 国产精品12区| 国产精品无人区| 在线一区二区视频| 夜夜嗨av一区二区三区四季av| 欧美在线免费播放| 毛片不卡一区二区| 久久精品视频在线免费观看| 国产精品123区| 亚洲欧美日韩一区二区三区在线观看| 欧洲人成人精品| 久久99国产精品免费网站| 日本一区二区三区四区在线视频| 91影院在线观看| 免费在线观看日韩欧美| 欧美xxxxx牲另类人与| 大陆成人av片| 一区二区欧美国产| 日韩视频免费观看高清完整版| 国产suv一区二区三区88区| 一区二区三区四区五区视频在线观看| 在线播放91灌醉迷j高跟美女| 国产一区视频在线看| 亚洲欧洲制服丝袜|