Comments 13
Порядка 15 лет кодинга на С++ под Линукс, и я полез гуглить что означает = default.
Я лошара?
C++ это стандартизированный язык, поэтому Linux или Windows вообще никакой роли не играют.
А какого эпитета заслуживает человек, который не знает стандарта языка десятилетней давности, это ему самому решать.
Смотря какого стандарта с++ вы придерживаетесь в своём кодинге. default- конструктор был введён, если не ошибаюсь в c++11.
Мой опыт показывает, что когда человек говорит, что знает C++, на деле оказывается, что даже половины языка он ничерта не знает, не говоря уж об STL. Смотрит на лямбду, к примеру, и спрашивает, это точно С++? Но это не сильно мешает ему писать вполне грамотный код, быстрый и безопасный.
Нет, просто язык действительно очень перегружен уже и многие вещи часто не знакомы даже опытным людям.
Имхо надо стараться к упрощению и сокращению конструкций, а пока выходит наоборот и это не особо радует...
Есть ещё один минус: такую функцию не вынесешь в .cpp
Я понимаю, что статья не об этом, а о скрытых друзьях, но какая была выбрана мотивация, о такой я и спрашиваю.
Хотя бы потому что форматирование это создание где-то в памяти строки, которую потом копировать в поток. С текущим подходом каждый объект просто может как-то себя положить в поток, не используя слишком много дополнительной памяти и времени.
Здесь компромисс между быстродействием и независимостью.
Если у вас карта с миллионом точек, то создавать временную строку - так себе идея.
Тем более, что умение записываться в поток и читаться из него - это почти стандарт.
Получается, методы класса могут быть рассыпаны по всему проекту в виде скрытых друзей. А как это соотносится с Single Responsibility Principle, вцелом читабельностью и легкостью поддержки?
Скрытые друзья в плюсах