Andrei
Anonymous
Так точнее будет
Andrei
Какие есть конкретные претензии к лямбдам?
Anonymous
Да жирные они, какие ещё могут быть претензии?
Andrei
d rfrjv cvsckt&
Andrei
В каком смысле?
Anonymous
По сравнению с лямбдами шарпа и жабы, в плюсах они смотрятся просто страшно
Andrei
по синтаксису, или оверхед?
Anonymous
да
Anonymous
в плане синтаксиса
Andrei
что да?
Anonymous
они пиздос страшные
Andrei
Что именно страшное?
Anonymous
В той же жабе мягче
Andrei
Что значит мягче, пример пожалуйста.
Andrei
И я замечу, что в жабе их не было до поры до времени. И я уже сказал про шаблонные лямбды, правда?
Anonymous
Уже был пример, в котором я пытался просто удалить объекты с полем дестроед = тру. В том же шарпе это было в одну строчку, вместо трёх
Anonymous
Т.е. не такая объёмная конструкция вышла бы, чем тут
Andrei
Еще раз, при чем тут ЛЯМБДЫ?
Andrei
Лямбда тут занимает одну строчку.
Anonymous
А что бы её применить, надо ещё кучу чего сделать
Anonymous
.____.
Andrei
Лол.
Andrei
Это не имеет отношения к лямбдам. Ты раньше бы написал то же самое, только вместо лямбды свободная функция
Andrei
Ну и да, подожди 17-го стандарта, там из коробки будут очень изящные member-acess-оры
Andrei
но даже сейчас ты можешь написать что-то в духе
Andrei
вернее сможешь
Andrei
std::get_member(&Brick::destroyed)
Anonymous
Вот это секси будет
Andrei
такую функцию и сейчас можно написать.
Andrei
Именно таким синтаксисом
Andrei
Несложно причём.
Andrei
Шаблонная магия.
Anonymous
Надо будет потыкать попробовать. т.е. уже при сборке c++14 такая конструкция валидна?
Andrei
с концептами будет еще попроще
🦥Alex Fails
Andrei
нет такой конструкции, я её для примера написал. Ты сейчас её сам можешь заимплементить на 11-х плюсах.
Anonymous
Ааа, ну это нужно не полениться
Anonymous
А я ленивый дико
Anonymous
Реализовывать, дописывать
Andrei
Ну это один раз написать. И наверняка пропозал есть.
Andrei
о, ну-ка поподробнее)
ну там в общем концепты будут. remove_if будет брать нечто более общее чем функцию от була, он будет брать что угодно, являющееся концептом Predicate
Andrei
А его уже можно сделать ну вот как я предложил например.
Andrei
что-то в духе get_member
Andrei
Бтв, предлагаю c++ challenge :D
Andrei
написать такую функцию
Andrei
как-то в духе get_member<😠&Class::field)
🦥Alex Fails
а эта штука что должна возвращать?
🦥Alex Fails
указатель?
Andrei
Нет.
Andrei
Эта штука должна возвращать функтор
Andrei
который берет const Class&
Andrei
и возвращаеn const decltype(Class::field)&
Andrei
Или если передан не конст, то возвращается тоже не конст
$continue$
Ned
Ned
в libstdc++
Anatoly
$continue$
В любом случаи, printf говорят, что быстрей
$continue$
http://www.cyberforum.ru/holywars/thread344038.html
$continue$
ууу.. Там ещё и бустик попер 😆
$continue$
boost::format
arisudesu
cout напрямую с потоком работает
arisudesu
разве нет?
🦥Alex Fails
Andrei
🦥Alex Fails
все зависит от реализации
Anatoly
oops, таки не совсем "не через printf"
Через snprintf
Andrei
на самом деле, если выключить у стандартных стримов синхронизацию
🦥Alex Fails
в принтфе по крайней мере сложность O(n), n = strlen(fmt)
Andrei
то разницы никакой
🦥Alex Fails
у сиаута сложность O(1)
Andrei
но другое дело, что подстановку в строчку делать может быть долго
Andrei
Да.
$continue$
Там на киберфоруме ещё один тред есть)
$continue$
что компиляторы сравнивают скорости
🦥Alex Fails
оверхед в принтфе возникает из-за парса форматной строки
$continue$
cout и printf
🦥Alex Fails
оверхед в cout может быть в дебаг-версиях из-за вспомогательных классов и методов
🦥Alex Fails
которые в релизе инлайнятся