Линус в очередной раз сказал,
что думает о C++. Вот длинная цитата, но вообще-то стоит все прочитать.One of the absolute worst features of C++ is how it makes a lot of things so context-dependent - which just means that when you look at the code, a local view simply seldom gives enough context to know what is going on
(
Read more... )
Comments 50
Вот этим, например, и лучше :). Я не знаю, без чего мне тяжелей было бы жить, без, скажем, кофейной машины - или без мьютекса, который автоматически освобождается при выходе из скоупа.
Reply
Я просто люблю goto. Хотя и деструкторы на } - тоже люблю.
Reply
Совершенно ничего красивого в нём нет, как легко обнаружить, если начать его повсеместно использовать. Во-первых, в результате появляется совершенно отдельная переменная result. Которая там, в end, проверяется. Во-вторых, упаси вас Бог присвоить её где-нибудь, кроме как непосредственно перед каждым из goto end или самим end: потому что если это например какой-нибудь указатель на свежевыделенную память, то в случае ошибки её надобно освободить же, тогда как в случае успешного завершения -- ни в коем случае не надо. Так что выбирайте между tmp_result + result или result + success.
Reply
Reply
Хороший стиль C++ - это программирование на одном из его осознанно выбранных диалектов.
Ну например, отказаться от исключений, виртуальных функций, т.п., и писать на "C с классами". По сути это портативный ассемблер и есть. Вполне себе диалект.
Если известно, на каком диалекте написана программа, то локальность и простота обеспечивается.
Умение выбирать диалект под задачу, не мешать разные диалекты в одну кучу, заставить всех участников проекта писать именно на этом диалекте - собственно в этом и скилл программирования на C++.
Reply
Ах, на самом интересном месте!
Reply
Reply
Reply
Reply
Reply
Reply
Reply
Правда вряд ли автор первоначального комментария имел ввиду именно это.
Reply
Другими словами, все хорошо в своем месте и в свое время.
Reply
Leave a comment