Тема: f(const x)
Показать сообщение отдельно
Старый 27.06.2012, 02:13   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: f(const x)

Сообщение от HolyDel Посмотреть сообщение
void Save2File(const char* const FileName);
если бы мне платили за килобайты кода - защищал бы
а так это адов бред, имхо.

хотя больше бесит когда по константной ссылке передают всякие инты, чары и флоаты.
Суть: избежать случайного затирания внутри функции.
Ну из серии: скопипастил кусок кода из старой реализации, который оперирует массивом FileName и заодно изменяет адрес, хранимый в указателе (допустим, для той задачи это было адекватно [например, указатель ссылается на последний слеш в переданном имени], а в теперешней - нет) . И бац - ошибка.
Пример синтетический конечно, но, если всё по уму писать, то многое от чего можно отказаться - некоторый контроль (особенно при коллективном программировании) можно возложить на язык.

Не думаю, что часто в реализации вы используете повторно нессылочные аргументы - так чего же их не "закрыть"?

Я не агитирую, я высказываю контраргумент для полноты картины
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием