Мыши продолжают жрать кактус потому, что организм млекопитающего приспосабливается под потребляемую пищу. Это биология. Если рядом с такой мышью положить сыр, ей все равно будет хотеться кактус.
Я приведу не банальный гипотетический, а совершенно реальный пример из реальный жизни.
Когда появился win32, int-ы для виндовс-разработчиков стали 4-х байтными (были - 2-х). Я тогда как раз начинал программировать. Наверное, это создало какие-то проблемы для корпоративных разрабов, но им за это деньги платят. А сообщество энтузиастов тогда было в диком восторге. Никакие проблемы никому настроение не портили.
Куча win16 кода очень быстро потеряла актуальность. Но не потому, что стандарт С++ изменился, а потому, что Windows 3.11 сдох.
Я полностью согласен с AnimeSlave, что чемодан с уже нафиг нужным функционалом нам тащить с собой и дальше, но если каждое когда-то принятое решение (неважно, насколько удачное) мы будем беречь как "священную корову" и при этом еще добавлять новые(!)... через какое-то время нам просто понадобится другой язык.
У C++ программистов нет проблем с инициализациями. Потому что используются тот вид инициализации, которым привыкли работать. Остальное просто не используется. Это плохо, но так исторически сложилось. Таков язык C++. А если у вас возникла потребность что-то поменять, то это конкретно лично у вас проблема. Ваша статья выглядит так, будто вы пытаетесь натянуть эту проблему на всех.
Первый абзац статьи. Надеюсь, ссылки Вы у меня просить не будете, хотя они где-то есть. Без литобзора я бы столько времени на это тратить не стал.
Вы же понимаете, что помимо инициализации есть, копирование, и перемещение. И это всё должно работать. Вы задумывались о том, как у вас будут работать эти механизмы вне инициализации?
Абзац, где "Через какое-то время это ключевое слово можно было бы упразднить".
Вопросы риторические
Ну почему же? Разумеется, я всего не предусмотрел. Сказать так было бы просто глупостью. Это все - чистая теория. При попытке (чисто гипотетической) реализовать подобное, наверняка вылезет куча нюансов, предусмотреть которые сейчас практически невозможно. Тем не менее, мне это кажется вполне реализуемым и это как раз-таки ничто иное, как попытка разгрузить перегруженный язык.
В любом случае, спасибо за Ваше мнение и комментарии!
Проблема у вас в том, что вы предлагаете переделать то, что переделывать в языке не будут.
Это у НАС проблема. :)
И просто так взять и поменять семантику объявления и инициализации никто не даст.
Синтаксис не меняем вообще. А там, где в дело идет специальный оператор присвоения (отрывающий фигурные скобки от непосредственно инициализации), нас страхует то самое ключевое слово.
Используйте инициализацию через фигурные скобки везде. Это на самом деле проще, чем кажется на первый взгляд.
Во-первых, Вы тут никому не KanuTaH и сделайте лицо попроще, пожалуйста.
Во-вторых, ...он будет сгенерирован компилятором... ИМЕННО. И в результате ...будет у Вас переписанный obj...
Справедливости ради, я действительно не учел S& operator=(S&&). Похоже, что часть предлагаемого в статье уже работает. Радоваться этому или нет пока не ясно.
То, что выше, - ответ на самый первый комментарий. Он совершенно выпал из контекста, но как его удалить я не знаю.
Мыши продолжают жрать кактус потому, что организм млекопитающего приспосабливается под потребляемую пищу. Это биология. Если рядом с такой мышью положить сыр, ей все равно будет хотеться кактус.
Я приведу не банальный гипотетический, а совершенно реальный пример из реальный жизни.
Когда появился win32,
int
-ы для виндовс-разработчиков стали 4-х байтными (были - 2-х). Я тогда как раз начинал программировать. Наверное, это создало какие-то проблемы для корпоративных разрабов, но им за это деньги платят. А сообщество энтузиастов тогда было в диком восторге. Никакие проблемы никому настроение не портили.Куча win16 кода очень быстро потеряла актуальность. Но не потому, что стандарт С++ изменился, а потому, что Windows 3.11 сдох.
Я полностью согласен с AnimeSlave, что чемодан с уже нафиг нужным функционалом нам тащить с собой и дальше, но если каждое когда-то принятое решение (неважно, насколько удачное) мы будем беречь как "священную корову" и при этом еще добавлять новые(!)... через какое-то время нам просто понадобится другой язык.
Первый абзац статьи. Надеюсь, ссылки Вы у меня просить не будете, хотя они где-то есть. Без литобзора я бы столько времени на это тратить не стал.
Абзац, где "Через какое-то время это ключевое слово можно было бы упразднить".
Ну почему же? Разумеется, я всего не предусмотрел. Сказать так было бы просто глупостью. Это все - чистая теория. При попытке (чисто гипотетической) реализовать подобное, наверняка вылезет куча нюансов, предусмотреть которые сейчас практически невозможно. Тем не менее, мне это кажется вполне реализуемым и это как раз-таки ничто иное, как попытка разгрузить перегруженный язык.
В любом случае, спасибо за Ваше мнение и комментарии!
Это у НАС проблема. :)
Синтаксис не меняем вообще. А там, где в дело идет специальный оператор присвоения (отрывающий фигурные скобки от непосредственно инициализации), нас страхует то самое ключевое слово.
:)
Это не туториал.
Это немного не то. Я бы даже это ключевое слово брать не стал, оно для других целей предназначено.
Заменил "упразднить" на "игнорировать". Строго говоря, первое, имхо, включает в себя и второе, но если это вызывает вопросы, то пусть будет так.
Во-первых, Вы тут никому не KanuTaH и сделайте лицо попроще, пожалуйста.
Во-вторых, ...он будет сгенерирован компилятором... ИМЕННО. И в результате ...будет у Вас переписанный obj...
Справедливости ради, я действительно не учел S& operator=(S&&). Похоже, что часть предлагаемого в статье уже работает. Радоваться этому или нет пока не ясно.
Ну не стал и не стал, о чем тогда говорить-то?
А если Вы operator=() не описали, то будет у Вас переписанный obj.
Перевод. Ссылка на оригинал начинается так: C:\Users\ ...
Но каким бы умным Вы не были, Вам его оттуда не достать. :)
И причем здесь ChatGPT?