?

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

mpd
Oct. 26th, 2016 07:38 pm (UTC)
Re: Бнопня по C++
С прошедшим ДР!
Мои самые наилучшие пожелания!

Ой, да, бог с ним, с Си++, с ФЯПами, передачей объектов по значению и прочей чушью...
Надеюсь, со временем - разберётся народ, применит нужный инструмент для соответствующей задачи.
Иначе я потеряю окончательно веру в людей и цивилизацию.

Надеюсь, хоть кому-то удаться сходить на юбилей к Кнышеву. ;-)
thesz
Oct. 26th, 2016 11:19 pm (UTC)
Re: Бнопня по C++
Могу ли я получить ответ на мой вопрос?
mpd
Oct. 27th, 2016 07:40 am (UTC)
Re: Бнопня по C++
К сожалению, не обладая опытом разработки на тех языках, которые обсуждаются, как альтернатива Си++, сложно придти к объективному заключению.

В свою очередь, такие понятия, как "приложение усилий" (фигурирующее в объяснениях) - очень субъективны: мне, например, чтобы писать комментарии на немецком языке в исходном коде, нужно прилагать немыслимые усилия (и раньше, и сейчас, и в будущем), а кто-то из нас - так и делал когда-то (аналогично со штангой, я некоторый вес - вообще не подниму, который другому из нас - раз плюнуть, не прилагая усилий). Отсутствие приложения усилий при решении задачи может быть непосредственным следствием подготовки к решению подобного класса задач (например, если ты не можешь поднять половину своего веса, чего ты вообще пошёл разгружать вагоны; не понимаешь, чем передача аргументов по значению отличается от передачи аргументов по ссылке - зачем браться за программирование на этом языке).

Учитывая сказанное, я не могу откровенно сказать, что да, мне - понятно. Скорее, я понял направление, по которому мне стоит в жизни развиваться, чтобы затем сделать моё заключение об обсуждаемом вопросе.

Получен ли ответ на вопрос? (я понимаю, он - ни да, ни нет, но некоторые вопросы не могут иметь такого ответа)
thesz
Oct. 27th, 2016 02:36 pm (UTC)
Re: Бнопня по C++
Вопрос был не в том, на каких языках вы разрабатывали, и что.

Вопрос был в том, понятно ли вам, что создание новых объектов в C++ и разделение старых между разными версиями структуры данных и приводит к увеличению усилий при программировании на С++ (внешне) неизменных структур по сравнению с изменяемыми структурами.

Итак, понятно ли вам это? Если не понятно, то что я должен объяснить или продемонстрировать?
mpd
Oct. 27th, 2016 02:54 pm (UTC)
Re: Бнопня по C++
Вопрос мне - понятен.
Утверждение о увеличении усилий - мне не кажется очевидным.
Объяснять и демонстрировать - ничего не надо, т.к. я постараюсь сам в этом убедиться со временем, чтобы сформировать своё представление, а пока мне не хватает опыта, я - сдаюсь.
Огромнейшее спасибо за прилагаемые усилия по моему просвещению!

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