Как стать автором
Обновить
121
0
Сергій Олендаренко @GooRoo

Пользователь

Отправить сообщение
В Харькове ВУЗов больше :P
<offtopic>
Скажите это программистам на Lisp :D
</offtopic>
Вроде в том же Киеве были столько же раз, сколько в Харькове, но Киев есть, а Харькова нет… Ну что за жизнь!
В бусте, я заметил, вообще любят перегружать операторы, особенно нестандартные типа % или, (запятая). Преимущество % в том, что 1) меньше писать; 2) достаточно низка вероятность того, что пользователь перегрузил его для своих целей (иначе было бы много путаницы).
Ну, лично мне так более очевидно, что это не какая-то индексация, а всё-таки вызов метода. В Boost.Program Options, например, реализовано похожим образом…

Сугубо IMHO.
Мда :) Это практически так же круто, как Boost.Format ;)
А ещё лучше на operator().
1. Когда C++ создавался, одной из основных целей было сохранение совместимости с уже имеющимся C-шным кодом (в идеале без изменений вообще, в хорошем случае — с минимальными правками). С тех пор политика комитета касательно принципа сохранения совместимости со старым кодом не изменилась, что есть правильно.
Почему C++ сразу не сделали удобным? Потому что по тем временам он был реально удобным в сравнении со многими другими языками. Это сейчас понапридумывали фич и синтаксического сахара, и C++ уже считается не удобным, а «терпимым».

2. Напомню, что STL — это часть стандартной библиотеки. Вам о чём-нибудь говорит слово библиотека?

Касательно встроенного string’а я не согласен. Язык C был достаточно низкоуровневым и позволял работать со строками, как с обычным массивом символов, что удобно (в плане открывающихся возможностей по оптимизации), особенно по тем временам. C++ же дал возможность создать string самостоятельно. Обратный путь от string к char * вряд ли был бы возможен без изменений в самом языке.
В общем-то, синтаксис — дело привычки. Мне к примеру нравится. С той же библиотекой Qt пользоваться C++ можно вполне успешно и в новых проектах.
Эхх… И почему синтаксис С++ так ублюдочен…

По-моему, вы зажрались :) Давайте для начала вспомним, сколько этому языку лет, от какого языка он произошёл, как часто в него добавляют фичи, ну и об обратной совместимости etc. Если после C#, обновляемого дважды в год, сесть за плюсы, то конечно синтаксис покажется ублюдочным…

Инициализация vector через {...} — штука самоочевидная, и почему этого не сделали раньше — вопрос.

Контейнер vector (как и остальные) — не часть языка, а всего навсего обычный шаблонный класс из библиотеки.
В C++ как раз фишка в том, что сам язык предоставляет кучу базовых возможностей для реализации каких-то фич, но в сам язык не добавляют миллион ключевых слов. Взять те же потоки (threads): их поддержка есть в виде библиотеки (в противовес — в том же C# есть ключевое слово synchronized, если я не ошибаюсь). А так, не устраивает вас работа с потоками — можно переписать на своё усмотрение.
С помощью библиотек в C++ добавили такие фичи как foreach (Boost.Foreach), да и почти такую же простую инициализацию контейнеров (Boost.Assign). А когда что-то становится частью языка, то это уже намертво.

Функторы объявляются через какие-то квадратные скобки! Читабельно, бля! А, самое главное, понятно, что это функтор. Иначе что же это ещё может быть. Вот, бля, до введения ключевого слова function не додумались ну никак.

Да, согласен, синтаксис немного странноватый, зато писать меньше :) Вот в Haskell мне нравится: там лямбды начинаются с \

Нулевой указатель был ещё в паскале! Наконец-то и сюда добрался! Браво, разработчики стандарта!

Ну, это уже не в C++ проблема — просто у его предка C такая специфика: просто, но мощно… :D По той же причине и встроенного строкового типа нет.

Опять же R-value только портит синтаксис. Ага. А на этапе компиляции определять что временное, а что нет, опять же, ну никак невозможно.

Ссылки на rvalue позволяют нам реализовать разную логику для работы с временными объектами и для работы с «обычными».

P.S. Не к сожалению, а к счастью ;)
Упс, пардон :) сча допишу
Случайно отправилось
Эхх… И почему синтаксис С++ так ублюдочен…


Эхх… И почему синтаксис С++ так ублюдочен…

Ну, студия студией, а GCC спецификации исключений в объявлении функций поддерживает. Теперь же эта фича считается устаревшей. А студия фактически всегда поддерживала только throw() в деструкторах, а остальное игнорировала.
Кажется, касательно правил разбора лямбда-выражений информация немного устарела: в новом стандарте throw-списки объявлены как deprecated (оставили только специальное ключевое слово nothrow или что-то в этом роде).

P.S. Было очень лестно увидеть себя в списке библиографии :))) Спасибо.
Я не совсем чётко выразился. Я знаю принцип работы Dropbox. Но дело в том, что я использую дропбокс для синхронизации некоторой инфы между компами, и клиент у меня, естественно, стоит на всех машинах. Значит, если я захочу выложить картинку в инет, то фактически она закачается на все мои компы.

Как вариант, конечно, — использование дополнительного аккаунта дропбокс.
Дропбокс не рулит тем, что приходится все картинки хранить фактически у себя на компе (а если компов несколько, то на нескольких).
Мой комментарий на то и был рассчитан — непонятно, на что был рассчитан Ваш.
Спасибо, капитан, но что-то Вы сегодня не в духе: между ними ещё буква «б», что кагбэ меняет ситуацию ;) Кроме того, увлечённость словом «ньюанс» чуть менее чем полностью поголовная, что не есть гуд.
Я прошу прощения, что пишу не в личку, но хочу, чтобы остальные тоже прочитали: слово «нюанс» пишется без мягкого знака!

У Вас достаточно чистая речь… Пусть она станет ещё лучше ;)
Да, это хорошая идея :)

P.S. Если я когда-нибудь буду работать в Opera, обязательно исправлю этот недочёт ;)

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность