C 類模板 函式模板全特化 偏特化的使用

2022-09-28 01:39:13 字數 1610 閱讀 4493

一、類模板全特化、偏特化

#pragma once

#include程式設計客棧

#include

template

class tc

void funtest() };

template<>

class tc

void funtest() };

template<>

void tc::funtest()

main.cpp

#include

#include "template.h"

using namespace std;

int main()

輸出:泛化版本建構函式

泛化版本成員函式

全特化版本建構函式

全特化版本成員函式

泛化版本建構函式

全特化版本函式

二、類模板偏特化

1、模板引數數量上:

template.h

#pragma once

#include

#include

template

class tc2};

template

class tc2

};main.cpp

#include

#include "template.h"

using namespace std;

int main()

輸出:泛化版本成員函式

偏特化版本成員函式

2、從模板引數範圍:

template.h

#pragma once

#include

#include

template

class tc3};

template

class tc3};

template

class tc3};

template

class tc3

};main.cpp

#include www.cppcns.comm>

#include "template.h"

using namespace std;

int main()

輸出:泛化版本成員函式

t&偏特化版本成員函式

t *偏特化版本成員函式

const t偏特化版本成員函式

三、函式模板全特化(不能偏特化)

template.h

#pragma once

#include

#include

template

void tfunc(t& a, u& b)

template <>

void tfunc(int& a, int& b)

main.cpp

#include

#include "template.h"

using namespace std;

int main()

輸出:tfunc 泛化版本函式

tfunc 全特化版本函式

本文標題: c++ 類模板、函式模板全特化、偏特化的使用

本文位址:

C 模板全特化 偏特化

大家都對c 的模板程式設計應該都能很熟練使用了,下面就是一段很簡單不過的例子了 模板函式 templatevoid func t num1,n num2 cout num1 num1 num2 num2 static bool comp t num1,n num2 return num1 特化其實就...

函式模板「偏特化」 (C )

模板是c 中很重要的乙個特性,利用模板可以編寫出型別無關的通用 極大的減少了 量,提公升工作效率。c 中包含類模板 函式模板,對於需要特殊處理的型別,可以通過特化的方式來實現特定型別的特殊操作。最近工作中,需要處理cont這種復合型別和t這種自定義型別的模板特化,因為cont型別有五種左右需要特殊處...

模板的偏特化,全特化

c 中的模板分為類模板和函式模板 模板的特化分為倆種 全特化和偏特化 全特化 舉乙個簡單的例子 可以發現,ab呼叫的是我們全特化後的版本,而aa呼叫的是原始版本。偏特化 偏特化又稱為區域性特化,全特化是對所有的模板引數進行特化,偏特化是對區域性的引數特化 乙個簡單的例子 templateclass ...