?

Log in

No account? Create an account

Previous Entry | Next Entry

Бнопня по C++

Засада. Как вы думаете, какая C++ (11) функция может быть быстрее при достаточно развесистом классе Foo?

size_t DirectSize(Foo && foo) {
    auto v = std::vector{std::move(foo)};
    return v.size();
}


size_t IndirectSize(Foo && foo) {
    auto v = construct_vector(std::move(foo));
    return v.size();
}


при условии, что construct_vector() — это функция, определённая в другом модуле?

Poll #2054853 Быстрота, милота

Какая функция может быть быстрее?

DirectSize
9(40.9%)
IndirectSize
13(59.1%)


Вопрос специально сформулирован несколько расплывчато. Хочу мнений!

Comments

zyxman
Oct. 3rd, 2016 11:50 pm (UTC)
Re: Бнопня по C++
Вообще, раз уж вы не имеете опыта с альтернативами, то вам конечно сложно понять, что у них много отличий, не только синтаксис.

Например, для почти всех функциональных языков свойственно разработка в режиме интерпретации, а именно что вы запускаете интерпретатор с командной строкой и ему даете на вход строки на языке, и так отлаживаете ваши идеи - вобщем это очень похоже на Питон, но на С/С++ вообще в принципе нет никакой аналогии - в мире Си исполнение обязательно подразумевает компиляцию и линкование.

Что интересно, Эппл для свифта режим однострочной интерпретации реализовал, но я еще не щупал реализацию, не могу сказать похоже ли это на альтернативы.

Как я уже говорил, классические CVS не очень удобны в работе с функциональными языками, и поэтому например у Эрланга есть своя собственная система отслеживания версий.

Объектные линкеры тоже не очень подходят для функциональных языков, и поэтому функциональные тоже строят свои собственные линкеры, я тут не сильно много знаю, достаточно хорошо знаю только Эрланг, у которого виртмашина вообще по сути целый юникс и работает прямо с объектными файлами Эрланг.
mpd
Oct. 4th, 2016 08:46 am (UTC)
Re: Бнопня по C++
> вобщем это очень похоже на Питон

Да, с питоном - знаком. И в интерпретаторе - часто сижу. Даже когда хелп нужен - help(what-ever) - и вперёд!

Кстати, в Gentoo - питона много! ;-)

> Объектные линкеры тоже не очень подходят для функциональных языков, и поэтому функциональные тоже строят свои собственные линкеры, я тут не сильно много знаю, достаточно хорошо знаю только Эрланг, у которого виртмашина вообще по сути целый юникс и работает прямо с объектными файлами Эрланг.

Что-то мне подсказывает, что ждёт всё это хозяйство тоже самое, что и Яву в железе.
Вот тут https://www.youtube.com/watch?v=9ei-rbULWoA Гослинг отвечает на вопрос о Hardware Implementations of JVM Bytecode на двадцатой минуте.
И это как раз хорошо отражает слова
> маленькие и даже средние организации вообще в принципе не могут соорудить свою собственную инфраструктуру - она просто слишком дорогая.
Оказывается, не только маленькие.

Но, ничего, может и будет прорыв. Начнут с какой-нибудь FPGA... Или - уже.

Profile

lionet
Lev Walkin
Website

Latest Month

December 2016
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
Powered by LiveJournal.com
Designed by yoksel