The matching itself is not a problem. Arguably it&#x27;s required for portability, but it&#x27;s very straightforward. Obvious implementation, all in one place, practically no maintenance cost, very unlikely to break.<p>But think about all the callers of these functions. There are usually more callers, at disparate places, and context will be less narrow there. It&#x27;s important not to conceal what is intended to happen at the call side. If these functions are overloaded and at some point due to unexpected integer promotion or a crazy typedef the wrong overload is picked, you will have a hard time debugging.