1. 程式人生 > >型別函式(type function)

型別函式(type function)

在C和C++中,我們常見的是值函式(value function),即函式接收的引數是某些值,而且函式的返回結果也是值。

至於型別函式(type function),即函式接收某些型別的實參,並生成一個型別作為函式的返回結果。

例子:

1、內建函式sizeof就是一個型別函式,它返回一個描述給定型別實參大小的常量。

2、類模板也可以作為型別函式。型別函式的引數可以是模板的引數,型別函式的返回結果可以是類模板的成員型別或者成員變數。

#include <stddef.h>
#include <iostream>

using namespace std;

template<typename T>
struct TypeSize
{
	static size_t const value = sizeof(T);
};

int main(int argc, char **argv)
{
	cout << "TypeSize<int>::value = " << TypeSize<int>::value << endl;

	return 0;
}

輸出結果:

TypeSize<int>::value = 4