Цитата(scifi @ May 10 2017, 12:38)

Причём код внутри одинаковый. Немного жаль, что в языке нет элегантного способа это разрулить.
Я об этом и говорю.
Цитата(scifi @ May 10 2017, 12:38)

Предложение такое:
Код
const char* f2(const char* s);
#define f1(s) (char*)f2(s)
Проверка типов сохраняется, всё работает. Логично?
Плохое решение. Две имени (функций) выполняющие одно и то же действие. И придётся каждый раз думать - какое имя подставить.
Цитата(Сергей Борщ @ May 10 2017, 13:41)

Не используйте столь низкие уровни оптимизации.
А как жить тогда? Ведь уже при уровне "Medium" не производится inlining, а при более высоких - отладка практически невозможна.

(
Цитата(Сергей Борщ @ May 10 2017, 13:41)

Смотря в каком языке. В плюсах есть, называется перегрузка функций.
Это я знаю (см. исходное сообщение). И это ведёт опять к тому-же - или два раза одно и то же тело описывать или вызывать через inline одно общее тело.
Вот если-б можно было один раз описать, а для второго списка аргументов использовать что-то типа typedef

typedef Func1 Func2;