2011-04-21 89 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