Re[7]: Range Operators для C++
От: Ops Россия  
Дата: 27.07.13 10:53
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>А ты понимаешь, что бывает мнение отличное от твоего?

Не понимает. Но в этом разделе я в 99% случаев согласен с его мнением.
KP>И то что в ряде языков, подобный синтаксис считается нормальным, а не проявленим "кулхацкерства млин".
А в русском-непечатном и не такой синтаксис есть. И? Давай его в плюсы тащить?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[11]: Range Operators для C++
От: Ops Россия  
Дата: 27.07.13 10:59
Оценка:
Здравствуйте, rusted, Вы писали:

R>Заодно и проблем с приоритетом операторов не было бы.


Проблем нет — есть скобки.
А запятая — она опасная, можно ошибок наделать.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Range Operators для C++
От: _NN_  
Дата: 28.07.13 09:28
Оценка:
Здравствуйте, kaa.python, Вы писали:

Логичней сделать
vec -= 2;


А "vec — 2" создавал бы новый контейнер не изменяя оригинальный.
Ну и неясно чем "vec << 4" лучше "vec += 4";
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Range Operators для C++
От: Ops Россия  
Дата: 28.07.13 09:37
Оценка:
Здравствуйте, omgOnoz, Вы писали:

O>Да их могут использовать, как угодно, это не как не контролируется языком.


Это контролируется людьми, использующими библиотеки. Как видишь, большинство тут рекламируемую либу не хочет.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Range Operators для C++
От: Ops Россия  
Дата: 28.07.13 09:42
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А "vec — 2" создавал бы новый контейнер не изменяя оригинальный.

Лучше CoW view или просто view
_NN>Ну и неясно чем "vec << 4" лучше "vec += 4";
Оба хуже.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
.
Re[6]: Range Operators для C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 28.07.13 09:42
Оценка:
Здравствуйте, Ops, Вы писали:

Ops>Здравствуйте, omgOnoz, Вы писали:


O>>Да их могут использовать, как угодно, это не как не контролируется языком.


Ops>Это контролируется людьми, использующими библиотеки. Как видишь, большинство тут рекламируемую либу не хочет.


Интересная == рекламируемая? Единственное, что я на этом сайте действительно рекламирую — так это Rust. Кстати, кто еще не читал про этот замечательный язык, прошу сюда (вот это была реклама). А либа — не более чам занятная штукенция, которую в реальный проект я (как, впрочем, и >50% содержимого BOOST-а) не включил бы.
Re: Range Operators для C++
От: Мишень-сан  
Дата: 30.07.13 16:07
Оценка: +1
Здравствуйте, 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 (это там где весь код сплошняком из спецсимволов). Если напихать такого в слишком больших количествах, Вы сами через месяц перестанете понимать, что здесь написано.
Re[5]: Range Operators для C++
От: ScorpZ Украина  
Дата: 31.07.13 09:54
Оценка:
Здравствуйте, 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.
Re[3]: Range Operators для C++
От: VladFein США  
Дата: 31.07.13 15:08
Оценка: -1
Здравствуйте, kaa.python, Вы писали:

A>>и что это значит?


KP>А по выводу на консоль ты не сообразил? Пичалька


если это была загадка — надо было в этюды.
Re[3]: Range Operators для C++
От: VladFein США  
Дата: 31.07.13 18:52
Оценка:
Здравствуйте, omgOnoz, Вы писали:


KP>>> vec — 2; // удалить 2ой элемент из vec


С таким же успехом может быть "удалить элемент равный 2"... Как нам было сказано, гадать надо "по выводу на консоль"

Эта "библиотечка" ещё открыта для предложений?

vec — 2; // удалить элемент равный 2
vec — [2]; // удалить 2ой элемент из vec
vec — [*2]; // удалить каждый 2ой элемент из vec
Re[3]: Range Operators для C++
От: VladFein США  
Дата: 31.07.13 20:03
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>А по выводу на консоль ты не сообразил? Пичалька


Вы бы умерили высокомерие.
"по выводу на консоль", как отмечено выше, могло бы быть:

KP> vec — 2;


удалить второй элемент
или
удалить элемент равный 2

В Вашем, строго говоря, не совсем удачном примере значения элементов совпадают с их индексами...
А гадают все по-разному.

Может всё-таки в этюды? Или опять "минус"?
Re[4]: Range Operators для C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 01.08.13 04:51
Оценка: :))
Здравствуйте, VladFein, Вы писали:

VF>удалить второй элемент

VF>или
VF>удалить элемент равный 2
VF>В Вашем, строго говоря, не совсем удачном примере значения элементов совпадают с их индексами...

Сложно в серьез воспринимать людей, у которых второй элемент std::vector имеет индекс 2
Re: Range Operators для C++
От: rg45 СССР  
Дата: 01.08.13 06:40
Оценка: +2
Здравствуйте, 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;
KP>    vec << 4;
KP>    for (int x: vec) {
KP>        cout << x << " ";
KP>    }
KP>    cout << endl;
KP>}
KP>

KP>
>> ./a.out
KP>1 3 4
KP>



Я согласен с классиками, рекомендующими сохранять естественную семантику операторов и не прибегать к их перегрузке по чем зря. ИМХО, библиотеки общего применения не должны игнорировать "Принцип наименьшего удивления", и использование именованных функций было бы более предпочтительным в данном случае.
--
Справедливость выше закона. А человечность выше справедливости.
Re[6]: Range Operators для C++
От: igna Россия  
Дата: 01.08.13 09:56
Оценка:
Здравствуйте, Abyx, Вы писали:

A>я понимаю что автор кода идиот, но как же печально, что находятся люди которым нравится писать угловые скобочки и прочие закорючки вместо нормальных человеческих слов.


А я наоборот не понимаю, какой интеллектуал придумал использовать слова для обозначения арифметических операций вроде "ADD b TO c GIVING a".

Если бы математики не использовали специальных обозначений, а только "нормальные человеческие слова", они бы до сих пор не сильно далеко от арифметики ушли. Квантовой физики тоже скорее всего не существовало бы. Формализация понятий и использование специальных символов для их обозначения это великая вещь.
Re[7]: Range Operators для C++
От: Мишень-сан  
Дата: 01.08.13 10:53
Оценка: +1
Здравствуйте, igna, Вы писали:

I>А я наоборот не понимаю, какой интеллектуал придумал использовать слова для обозначения арифметических операций вроде "ADD b TO c GIVING a".


I>Если бы математики не использовали специальных обозначений, а только "нормальные человеческие слова", они бы до сих пор не сильно далеко от арифметики ушли. Квантовой физики тоже скорее всего не существовало бы. Формализация понятий и использование специальных символов для их обозначения это великая вещь.


ИМХО Вас тут заносит в другую сторону Естественно никто не предлагает нормальную арифметику записывать словами. Но и перегружать операторы, прикручивая к ним абсолютно неочевидную семантику — тоже очень плохо. Код должен легко читаться. Я например с большим удовольствием в питоне использовал "and" и "or" вместо && и || в С++. Читать гораздо легче.
Re[8]: Range Operators для C++
От: igna Россия  
Дата: 01.08.13 11:09
Оценка: -1
Здравствуйте, Мишень-сан, Вы писали:

МС>ИМХО Вас тут заносит в другую сторону Естественно никто не предлагает нормальную арифметику записывать словами. Но и перегружать операторы, прикручивая к ним абсолютно неочевидную семантику — тоже очень плохо. Код должен легко читаться. Я например с большим удовольствием в питоне использовал "and" и "or" вместо && и || в С++. Читать гораздо легче.


Во-первых, предлагает. "ADD b TO c GIVING a" это не фантазия, а Cobol. Во-вторых, как раз использовать "and" и "or" вместо && и || на мой взгляд не стоит, поскольку & и | это принятые в математике обозначения, а не нечто взятое с потолка.
Re[5]: Range Operators для C++
От: VladFein США  
Дата: 01.08.13 13:11
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Сложно в серьез воспринимать людей, у которых второй элемент std::vector имеет индекс 2


Не сложнее, чем пишущих
vec — 2;
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.