2011-04-21 68 views
1

我有一個模板函數。這個函數返回相同的模板類型。例如:它需要T型變量並返回T型變量。現在,我可以投用靜態澆鑄到Uint32.Will我得到任何錯誤的返回類型T的變量輸入模板函數返回值

+1

爲什麼你不試試看,看看你是否有任何錯誤? – 2011-04-21 16:45:50

回答

7

從我瞭解你會有類似

template <class T> 
T noop (T a) { 
    return a; 
} 

的功能,你想投的結果它

uint32 i = static_cast<uint32>(noop(val)); 

這會成功,如果val是可以轉換爲UINT32,如果它不能失敗的類型。

uint32 i = static_cast<uint32>(noop(uint32(0))); // ok 
uint32 i = static_cast<uint32>(noop("asdf")); // not-ok