參考 [C++ 語言] 範本
本主題說明如何使用已宣告的範本。
template-name < template-arg-list >
備註
樣板引數清單應該是以逗點分隔的清單:
expressiontype-name
所有運算式引數必須是常數運算式。 找不到相符前次產生的範本時,編譯器就會建立新的執行個體 (稱為 「 執行個體化 」) 的樣板類別或函式。 比方說,對參考MyStack中所定義的類別成員函式樣板:
MyStack< unsigned long, 5 > stack1;
// Creates a stack of unsigned longs.
MyStack< DWORD, 5 >stack2;
// Uses code created above.
MyStack< char, 6 > stack3;
// Generates new code.
MyStack< MyClass, 6 > stack4;
// Generates stack of MyClass objects.
每個產生的函式樣板會建立自己的靜態變數和成員。
所有的樣板引數必須是可存取其使用所在的點。
上述的語法規則的例外是找出之後的運算式中的成員樣板特製化::, **.**或 -> 運算子。 這些運算子,關鍵字之後template可以指定。 Visual C++ 離開單元,讓標準template關鍵字永遠是選擇性在此情況下,而標準則會在某些情況下需要它。 範本關鍵字不能特製化中除非遵循這些運算子。
[ :: | -> | . ] templatetemplate-name**<template-arg-list>**
例如,下列指定的呼叫int成員函式樣板特製化的 f<T>(int)類別的成員X ,並將它傳遞參數10。
X::template f<int>(10);