QUOTE (jcxz @ May 10 2017, 13:28)

Понятно, что можно объявить inline функцию, в которой сделать приведение к нужному типу. Но тогда, с низким уровнем оптимизации, функция не будет заинлайнена.
Не используйте столь низкие уровни оптимизации.
QUOTE (scifi @ May 10 2017, 13:38)

Немного жаль, что в языке нет элегантного способа это разрулить.
Смотря в каком языке. В плюсах есть, называется перегрузка функций. Можно объявить две функции с одинаковым именем но разными типами параметров. В зависимости от типа передаваемого параметра будет подставлен вызов соответствующей функции. В общем надо переходить на плюсы, даже если писать на них в стиле обычных Сей, просто постепенно добавляя использование все новых и новых плюсовых плюшек.