mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.4K
active users

#variadic_templates

0 posts0 participants0 posts today
Habr<p>Пишем свой вариантный тип</p><p>C++ 17 привнес в язык достаточно много нововведений, в том числе шаблон std::variant (хоть в Boost он есть уже довольно давно). Фактически, последним вышедшим и полноценно реализованным стандартом C++ на тот момент, как я начал изучать данный язык, являлся как раз C++17, поэтому нововведениям данного стандарта в свое время я уделил наибольшее внимание. В какой-то момент мне стало интересно, как именно устроен std::variant, в связи с чем я немного погуглил про его принципиальное устройство и, вооружившись variadic templates, сел писать свою реализацию. Данный шаблон устроен достаточно интересно, поэтому людям, вообще не знакомым с его устройством, данная статья будет полезна. Если данную статью прочитают более опытные разработчики, я буду рад их комментариям по поводу моей реализации. Упомяну несколько моментов перед началом статьи:</p><p><a href="https://habr.com/ru/articles/804837/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/804837/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>c</span></a>++17 <a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>c</span></a>++ <a href="https://zhub.link/tags/variant" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>variant</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B5%D1%82%D0%B0%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>метапрограммирование</span></a> <a href="https://zhub.link/tags/%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>шаблоны</span></a> <a href="https://zhub.link/tags/variadic_templates" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>variadic_templates</span></a></p>
Habr<p>C++26 — прогресс и новинки от ISO C++</p><p>Работа в комитете по стандартизации языка C++ активно кипит. Недавно состоялось очередное заседание. Как один из участников, поделюсь сегодня с Хабром свежими новостями и описанием изменений, которые планируются в С++26. До нового стандарта C++ остаётся чуть больше года, и вот некоторые новинки, которые попали в черновик стандарта за последние две встречи: запрет возврата из функции ссылок на временное значение, [[indeterminate]] и уменьшение количества Undefined Behavior, диагностика при =delete; , арифметика насыщения, линейная алгебра (да-да! BLAS и немного LAPACK), индексирование variadic-параметров и шаблонов ...[42] , вменяемый assert(...) , и другие приятные мелочи. Помимо этого, вас ждут планы и прогресс комитета по большим фичам и многое другое. Рассмотрим новинки на примерах</p><p><a href="https://habr.com/ru/companies/yandex/articles/801115/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/yandex/a</span><span class="invisible">rticles/801115/</span></a></p><p><a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>c</span></a>++ <a href="https://zhub.link/tags/%D1%81" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>с</span></a>++ <a href="https://zhub.link/tags/constexpr" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>constexpr</span></a> <a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>c</span></a>++26 <a href="https://zhub.link/tags/%D1%81" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>с</span></a>++26 <a href="https://zhub.link/tags/numeric" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>numeric</span></a> <a href="https://zhub.link/tags/floating_point" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>floating_point</span></a> <a href="https://zhub.link/tags/float" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>float</span></a> <a href="https://zhub.link/tags/double" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>double</span></a> <a href="https://zhub.link/tags/iso" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iso</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/span" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>span</span></a> <a href="https://zhub.link/tags/functions" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>functions</span></a> <a href="https://zhub.link/tags/function" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>function</span></a> <a href="https://zhub.link/tags/blas" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>blas</span></a> <a href="https://zhub.link/tags/lapack" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lapack</span></a> <a href="https://zhub.link/tags/atomic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>atomic</span></a> <a href="https://zhub.link/tags/linear_algebra" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>linear_algebra</span></a> <a href="https://zhub.link/tags/variadic_templates" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>variadic_templates</span></a></p>