2010-04-28 122 views
3

有沒有做到以下幾點直接的方式:C++「延遲」模板參數

template <class> 
struct f {}; 

template < class F > 
void function() { 
    F<int>(); //for example 
    // ? F template <int>(); 
} 

function <f>(); 

我以圍繞模板結構額外的類解決辦法。 我想知道是否可以直接這樣做。

感謝

+1

我不明白背後的意圖。你想達到什麼目的? – sharptooth 2010-04-28 05:10:37

+0

@sharp實例化模板裏面的函數(上面只是例子) – Anycorn 2010-04-28 05:16:21

回答

7

模板模板參數的正確語法如下

template <class> struct f {}; 

template < template <class> class F > 
void function() { 
    F<int>(); //for example 
} 

...  
function <f>() 
+0

我知道我以前看過這個語法。現在我真的知道如何使用它。 spasibo – Anycorn 2010-04-28 05:15:22

+0

哇!沒有看到模板沒有命名的類。我在哪裏可以閱讀更多內容? – sharptooth 2010-04-28 05:19:31

+4

@sharptooth:這裏沒多少東西要讀。就像使用普通的函數參數一樣,如果你不使用模板參數,你不必命名它。 – AnT 2010-04-28 05:33:34