I agree the value needs to be restricted. If t doesn't cast down then the event never occurs for some inputs, otherwise the value can overflow. My option allowed a compile time solution, but other methods are needed for run-time safety.
Also WizenedEE, your macro is missing an '('