Здравствуйте, kaa.python, Вы писали:
KP>А ты понимаешь, что бывает мнение отличное от твоего?
Не понимает. Но в этом разделе я в 99% случаев согласен с его мнением. KP>И то что в ряде языков, подобный синтаксис считается нормальным, а не проявленим "кулхацкерства млин".
А в русском-непечатном и не такой синтаксис есть. И? Давай его в плюсы тащить?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, _NN_, Вы писали:
_NN>А "vec — 2" создавал бы новый контейнер не изменяя оригинальный.
Лучше CoW view или просто view _NN>Ну и неясно чем "vec << 4" лучше "vec += 4";
Оба хуже.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, omgOnoz, Вы писали:
O>>Да их могут использовать, как угодно, это не как не контролируется языком.
Ops>Это контролируется людьми, использующими библиотеки. Как видишь, большинство тут рекламируемую либу не хочет.
Интересная == рекламируемая? Единственное, что я на этом сайте действительно рекламирую — так это Rust. Кстати, кто еще не читал про этот замечательный язык, прошу сюда (вот это была реклама). А либа — не более чам занятная штукенция, которую в реальный проект я (как, впрочем, и >50% содержимого BOOST-а) не включил бы.
Здравствуйте, kaa.python, Вы писали:
KP>Попалась на глаза довольно интересная (правда пока что глючная) библиотечка для C++, позволяющая делать, например, так:
Увы и ах, получилось крайне неоднозначно
KP>
KP>#include <ro/ro.h>
KP>using namespace ro;
KP>int main() {
KP> vector<int> vec {1,2,3};
KP> vec - 2; // take 2 ? drop 2 ? вычесть 2 из аждого элемента ?
KP> vec << 4; // WTF??? Сделать каждому элементу вектора сдвиг влево? сделать rotate left на 4 позиции?
KP> for (int x: vec) {
KP> cout << x << " ";
KP> }
KP> cout << endl;
KP>}
KP> KP>
>> ./a.out
KP>1 3 4
KP>
KP>При сборке требует флага -std=c++11, Clang не собирается
Всё-таки я не сторонник J style (это там где весь код сплошняком из спецсимволов). Если напихать такого в слишком больших количествах, Вы сами через месяц перестанете понимать, что здесь написано.
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, omgOnoz, Вы писали:
O>>Это не печаль, без просмотра http://volnitsky.com/project/ro/ — в написанном коде черт ногу сломит
KP>А вот Scala-разработчики с тобой бы не согласились. В целом, ощущение двоякие, с одной стороны можно лаконичнее написать код, так v.push_back(foo) выглядит не так красиво как vec << foo, а с другой стороны, дополнительные потенциальные ошибки и усложнение гугления.
Мужчина , ну вы не правы.
1] Во первых, без прочтения документации, откуда значть, что :
1) rg — value -> rg // erase all elements equal to value
2) rg << value -> rg // append value to range
Хочу заментить, что в С/С++ операторы (-) и (<<) имеют совсем другие значения.
2] Во вторых , при чем тут "Scala-разработчики", в названии ветки форума ничего нету со совом — Scala.
Здравствуйте, VladFein, Вы писали:
VF>удалить второй элемент VF>или VF>удалить элемент равный 2 VF>В Вашем, строго говоря, не совсем удачном примере значения элементов совпадают с их индексами...
Сложно в серьез воспринимать людей, у которых второй элемент std::vector имеет индекс 2
Здравствуйте, kaa.python, Вы писали:
KP>Попалась на глаза довольно интересная (правда пока что глючная) библиотечка для C++, позволяющая делать, например, так:
KP>
Я согласен с классиками, рекомендующими сохранять естественную семантику операторов и не прибегать к их перегрузке по чем зря. ИМХО, библиотеки общего применения не должны игнорировать "Принцип наименьшего удивления", и использование именованных функций было бы более предпочтительным в данном случае.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Abyx, Вы писали:
A>я понимаю что автор кода идиот, но как же печально, что находятся люди которым нравится писать угловые скобочки и прочие закорючки вместо нормальных человеческих слов.
А я наоборот не понимаю, какой интеллектуал придумал использовать слова для обозначения арифметических операций вроде "ADD b TO c GIVING a".
Если бы математики не использовали специальных обозначений, а только "нормальные человеческие слова", они бы до сих пор не сильно далеко от арифметики ушли. Квантовой физики тоже скорее всего не существовало бы. Формализация понятий и использование специальных символов для их обозначения это великая вещь.
Здравствуйте, igna, Вы писали:
I>А я наоборот не понимаю, какой интеллектуал придумал использовать слова для обозначения арифметических операций вроде "ADD b TO c GIVING a".
I>Если бы математики не использовали специальных обозначений, а только "нормальные человеческие слова", они бы до сих пор не сильно далеко от арифметики ушли. Квантовой физики тоже скорее всего не существовало бы. Формализация понятий и использование специальных символов для их обозначения это великая вещь.
ИМХО Вас тут заносит в другую сторону Естественно никто не предлагает нормальную арифметику записывать словами. Но и перегружать операторы, прикручивая к ним абсолютно неочевидную семантику — тоже очень плохо. Код должен легко читаться. Я например с большим удовольствием в питоне использовал "and" и "or" вместо && и || в С++. Читать гораздо легче.
Здравствуйте, Мишень-сан, Вы писали:
МС>ИМХО Вас тут заносит в другую сторону Естественно никто не предлагает нормальную арифметику записывать словами. Но и перегружать операторы, прикручивая к ним абсолютно неочевидную семантику — тоже очень плохо. Код должен легко читаться. Я например с большим удовольствием в питоне использовал "and" и "or" вместо && и || в С++. Читать гораздо легче.
Во-первых, предлагает. "ADD b TO c GIVING a" это не фантазия, а Cobol. Во-вторых, как раз использовать "and" и "or" вместо && и || на мой взгляд не стоит, поскольку & и | это принятые в математике обозначения, а не нечто взятое с потолка.