this->notes. – Telegram
this->notes.
4.55K subscribers
25 photos
1 file
330 links
О разработке, архитектуре и C++.

Tags: #common, #cpp, #highload и другие можно найти поиском.
Задачки: #poll.
Мои публикации: #pub.
Автор и предложка: @vanyakhodor.
GitHub: dasfex.
Download Telegram
#cpp
Ещё когда-то на первом курсе я слышал, что с pragma once могут ещё быть проблемы кроме того, что это нестандартизированная фича, которую, тем не менее, поддерживают все(или почти) компиляторы. Однако кейс оказался довольно простым: link.
#cpp #proposals #rep
Тут можно посмотреть статус большинства proposals.
https://github.com/cplusplus/papers/issues

А вот новая подборка proposals:

1. Рассмотрим вот такой код:
using Int = int;
assert(std::is_same_v<Int, int>);

Знаете ли вы, что он не скомпилируется? Для решения этой проблемы был предложен http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2264r2.html .

2. std::execution как часть стандартной библиотеки для работы с асинхронностью: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2300r2.html .

3. constexpr class: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2350r2.pdf .
Единственное, что считаю нужным отметить: субъективно, мне бы хотелось чтобы это так и выглядело constexpr class A, а не как предлагается class A constexpr, ведь constexpr это, можно сказать, модификатор типа, и в 1м варианте код будет более консистентым.

4. A more constexpr bitset: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2417r1.pdf .

5. std::string::substr &&
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2438r0.html
#cpp
0. [History of C++] Templates: from C-style macros to concepts.
https://belaycpp.com/2021/10/01/history-of-c-templates-from-c-style-macros-to-concepts/

1. Stringy templates.
https://vector-of-bool.github.io/2021/10/22/string-templates.html

2. The flat mixin(название интригует, да?).
https://groundswellaudio.github.io/posts/cpp_the_flat_mixin/

3. Flexible reflection system in C++(in 2 parts).
https://preshing.com/20180116/a-primitive-reflection-system-in-cpp-part-1/
#cpp
Как работают исключения в С++.
Серия переводов: https://habr.com/ru/post/279111/
или оригинал: https://monkeywritescode.blogspot.com/p/c-exceptions-under-hood.html .
#common #fun
Требования к паролям -- полная чушь.
https://habr.com/ru/company/productivity_inside/blog/323864/
#cpp
1. Everything You Need to Know About std::variant from C++17.
https://www.cppstories.com/2018/06/variant/

2. In-Place Construction for std::any, std::variant and std::optional.
https://www.cppstories.com/2018/07/in-place-cpp17/

3. How To Use std::visit With Multiple Variants and Parameters.
https://www.cppstories.com/2018/09/visit-variants/
#poll
Что нужно сделать, чтобы этот код скомпилировался?
В таком виде он выдаёт
use of undeclared identifier 'a'
Если никто не пробьёт, ответ через пару дней. Иначе ищите в комментариях : )

UPD: как оказалось, на некоторых компиляторах заработает простое добавление typename. Но для clang этого недостаточно, так что давайте будем компилировать с его помощью : )
#pub
Впервые опубликовал что-то на широкую публику(небольшой перевод про аллокаторы). Посмотреть можно вот тут: https://habr.com/ru/post/590415/ .
#cpp
[видео]: Спецификаторы, квалификаторы и шаблоны.
https://www.youtube.com/watch?v=G_jcBrrYPAs
👍1
#cpp
Посмотрел выступление Антона Полухина на Magnit Tech++ Meet Up про планы на C++23 и C++26. Кратко отмечу основные моменты(возможно для вас не новые):
1. Добавляют std::stacktrace. В том числе для исключений. Ранее был только в бусте.
Вот несколько интересных proposals по этому поводу: принятый stacktrace for exceptions P2370, zero-overhead stacktrace for exceptions P2490.
2. Модуль std: P2412.
3. Hazard Pointer, предложенный как хорошее решение для ситуаций, когда много чтений и мало записей. Удобен для использования в кеш-системах в многопоточных приложениях. P1121.
4. В C++20 был принят std::format. В 23м стандарте появляется дополнение, проверяющее корректность строки и количества переданных аргументов на компиляции.

В C++26 планируется добавление рефлексии. Пока непонятно в каком виде.
Compile-time regular expressions. Тоже надежды на 26й стандарт.
Networking зависит от executor'ов. Потому пока не очень понятно, но надеятся на C++26.
👍1