Насколько я понимаю, у вас есть функция, которая выглядит как
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