Начали появляться видеозаписи докладов с CppCon 2021:
Плэйлист:
https://www.youtube.com/playlist?list=PLHTh1InhhwT6vjwMy3RG5Tnahw0G9qIx6
( список доступных видео, судя по всему, пополняется каждый день, на текущий момент пока 71 )
Здравствуйте, Voivoid, Вы писали:
V>Начали появляться видеозаписи докладов с CppCon 2021:
V>Плэйлист: https://www.youtube.com/playlist?list=PLHTh1InhhwT6vjwMy3RG5Tnahw0G9qIx6
В первую очередь посмотрел: Extending and Simplifying C++: Thoughts on Pattern Matching using `is` and `as` — Herb Sutter
Это здорово. Есть что обсудить. Сам пропозал я не читал.
1. Как я понял в inspect { is _ => } означает ветку default, так? Или что это за подчёркивание?
2. Прикольно, что inspect можно использовать как выражение. Следовательно результатом может быть значение разных типов, в зависимости от выбранного кейса?
3. Может-ли inspect вернуть значение, когда в кейсе после стрелочки идёт scope (фигурные скобочки)? Видимо последнее значение скоупа?
4. Собственно может захотеться написать is not ...
5. Я могу захотеть использовать "as" без возможности обращения к rtti (dynamic_cast) ... Неплохо-бы иметь синтаксис с rtti и без, чтобы можно было это указывать как-то лаконично. Например так: (as static)
auto y = x as static T *;
6. Когда есть перегрузка оператора "is" у типа T, но я вдруг захочу вызвать is без перегрузки, чтобы просто проверить тип во времени компиляции. Например так: (is consteval)
if( x is consteval T );
7. Компилятор
circle . Кто использовал? Первый раз слышу о нём. Интересно, планируются ли порты на win, mac, etc?
8. "D&E complete" — что это?
Кстати в моём языке ksi уже давно есть встроенные функции #is #as (они используются как операторы, ставятся между операндами).
Однако там не так наворочено, как в пропозале, конечно.