Цитата(jcxz @ May 10 2017, 13:28)

Имеется функция:
char *StrFunc(char const *str) {}
Внутри она использует str именно как char const * (только чтение) и потом возвращает например: str+N (N - типа int).
Функция принимает указатель на const, возвращает указатель по сути на тот же объект, но убирает const. Это нечестно.
То есть должно быть 2 функции:
Код
char* f1(char* s);
const char* f2(const char* s);
Причём код внутри одинаковый. Немного жаль, что в языке нет элегантного способа это разрулить. Предложение такое:
Код
const char* f2(const char* s);
#define f1(s) (char*)f2(s)
Проверка типов сохраняется, всё работает. Логично?