Передавать std::string_view по значению – идиоматично. Давайте разберемся, почему. Читать далее
В C++23 появились четыре новых ассоциативных контейнера: std::flat_map, std::flat_multimap, std::flat_set и std::flat_multiset, которые являются полноценной заменой упорядоченных ассоциативных контейнеров std::map, std::multimap, std::set и std::multiset. Они были добавлены в C++23 по двум причинам: расход памяти и производительность. Читать далее
На недавней встрече комитет C++ «прорвало», и в черновую версию C++23 добавили: std::mdspan std::flat_map std::flat_set freestanding std::print("Hello {}", "world") форматированный вывод ranges constexpr для bitset, to_chars/from_chars std::string::substr() && import std; std::start_lifetime_as static operator() [[assume(x > 0)]]; 16- и 128-битные float std::generator и очень много другого Подробности
Назначение std::string_view заключается в том, чтобы избежать копирования данных, которые уже чему-то принадлежат и для которых требуется только лишь неизменяемое представление. Как вы уже могли догадаться, этот пост будет посвящен производительности.Сегодня речь пойдет об одной главных фич C++17. Читать далее