Код, который напрямую зовёт std::vector{std::move(foo)} на данных в ощущениях компиляторах (gcc, clang) будет медленнее, чем construct_vector(std::move(foo)), где:
std::vector construct_vector(Foo && foo) {
std::vector vec;
vec.emplace_back(std::move(foo));
return vec;
}Почему это так случается? Из-за отсутствия оптимизации std::
(
Read more... )
Comments 58
Reply
Reply
Reply
Reply
А что насчёт Rust?
> Типичный C++, что ни фича, то засада.
Type Inference is awesome.
Reply
1. Я не настоящий сварщик.
2. Rust популярен в узких кругах, но мертв чуть менее, чем D.
> Type Inference is awesome.
Расскажите это Хиндли или Милнеру.
Reply
Reply
Это - специально сделано, что б ты и сам - не замечал? ;-)
Reply
Reply
2. Абстракции можно накрутить довольно приятные..
Reply
2. Нагенерить из DSL из настоящих абстракций!
Reply
Reply
Reply
> Только если действительно понимать, что происходит
Вот, зря ты так говоришь!!!
Это же можно понять так, что ты популяризируешь идею что не надо ничего понимать, среда-компилятор-утилиты - всё за тебя решат! (и это говорит человек, который отключает подсветку в редакторе, чтобы держать всё в голове!!!)
Например, я - не знаю Erlang, Вики - это не всегда хорошо, но даже там пишут, что бездумно писать на этом языке - не совсем хорошо:Эффективность
Как и многие другие языки программирования, Erlang имеет свои секреты написания эффективного кода. Совершенствование языка делает некоторые из трюков устаревшими, поэтому документация является лучшим руководством в вопросах оптимизации, в совокупности с профилированием и стресс-тестированием ( ... )
Reply
Если не понимать, что происходит, в C++, получаются периодические краши (факап для всех клиентов сразу) и дырки в безопасности.
Qualitatively, конечно.
Reply
А - Haskell? Почему в http://lionet.livejournal.com/139828.html?thread=4604468#t4604468 zyxman скептически отозвался о нём?
Objective-C - извини, я сам - не хочу.
Ну и, насколько я понимаю, в сухом остатке, Си++ - не мёртв? ;-)
Reply
И да, Erlang и Haskell - их нужно изучать. Что в продакшне потом использовать - зависит от задач. Изучи Haskell, потом возьми Swift и херач - и то больше пользы будет, чем если сразу фигачить на Swift'е.
Reply
Leave a comment