char_traits
標頭檔案char_traits.h
// generic char_traits class.note that this class is provided only
//as a base for explicit specialization; it is unlikely to be useful
//as is for any particular user-defined type.in particular, it
//*will not work* for a non-pod type.
字元特性模板
,目的是提供最基本的字元特性的統一的方法函式。
char_traits
繼承了__char_traits_base
template class char_traits
: public __char_traits_base<_chart, _chart>
{};
// specialization for char.
// char
字元型別模板偏特化
__stl_template_null class char_traits
: public __char_traits_base
//char
到int
型別的轉換
static int_type to_int_type(const char_type& __c)
//比較兩個字串
static int ***pare(const char* __s1, const char* __s2, size_t __n) //
到字元的長度
static size_t length(const char* __s)
//字元賦值
static void assign(char& __c1, const char& __c2)
//字串賦值
static char* assign(char* __s, size_t __n, char __c)
};// specialization for wchar_t.
// 寬字元型別模板偏特化
__stl_template_null class char_traits
: public __char_traits_base
{};// class __char_traits_base.
// 字元特性基類
template class __char_traits_base
// 字元比較
static bool eq(const _chart& __c1, const _chart& __c2)
// 字元大小比較
static bool lt(const _chart& __c1, const _chart& __c2)
// 字串比較
static int ***pare(const _chart* __s1, const _chart* __s2, size_t __n)
//
字串長度
static size_t length(const _chart* __s)
return __i;
}//
在串中查詢字元
static const _chart* find(const _chart* __s, size_t __n, const _chart& __c)
// 字串移到另一字串
static _chart* move(_chart* __s1, const _chart* __s2, size_t __n) //
拷貝一字串到另字串
static _chart* copy(_chart* __s1, const _chart* __s2, size_t __n)
// 字串賦值
static _chart* assign(_chart* __s, size_t __n, _chart __c)
// 判斷是否為結束符
static int_type not_eof(const int_type& __c)
// int
到char
型別的轉換
static char_type to_char_type(const int_type& __c)
// char
到int
型別的轉換
static int_type to_int_type(const char_type& __c)
// 判斷倆
int型別是否相等
static bool eq_int_type(const int_type& __c1, const int_type& __c2)
// 返回結束整型值
static int_type eof()
};
char traits類的兩個成員函式
static elem clrcall or cdecl copy s elem first1,size t dest size,const elem first2,size t count static elem clrcall or cdecl move s elem first1,size t...
c 類别範本(模板類)
人們需要編寫多個形式和功能都相似的函式,因此有了函式模板來減少重複勞動 人們也需要編寫多個形式和功能都相似的類,於是 c 引人了類别範本的概念,編譯器從類别範本可以自動生成多個類,避免了程式設計師的重複勞動。有了類别範本的機制,只需要寫一個可變長的陣列類别範本,編譯器就會由該類别範本自動生成整型 d...
C 中的模板(類别範本 模板類 模板函式)
1 class 一般class用於定義類,在模板引入c 後,最初定義模板的方法為 template,這裡class關鍵字表明t是一個型別 2 typename 為了避免class在這兩個地方的使用可能給人帶來混淆,所以引入了typename這個關鍵字,它的作用同class一樣表明後面的符號為一個型別...
C 模板類和類别範本
用相同的類别範本可以組建任何型別的物件集合。在傳統c 中,可能有一個浮點數類或者一個整數類,如果使用類别範本,可以定義一個對兩者都適用的類number。類别範本說明 類别範本說明的一般形式是 template 型別形參表 class 類名 template 型別形參表 返回型別 類名 型別名錶 成員...
C 類别範本和模板類
類别範本的意義和函式模板的意義是一樣的。template 宣告一個模板,虛擬型別名為t。注意 這裡沒有分號。class compare 類别範本名為compare t max t min 不能這樣定義類别範本中的成員函式而 應當寫成類别範本的形式 template tcompare max comp...