170 похожих чатов

Пока в супе яростная дискуссия об узлах и рёбрах...😁 Есть

класс exception (не std::), который умеет конструироваться от:
> exception(const char*)
> exception(const_char*, size_t)
Но он должен иметь другую семантику при создании от строки, которая гарантированно переживет объект исключения
Для этого хотелось бы иметь конструкторы
> exception(const char(&)[N])
> exception(const char*, persistent_message_tag)
> exception(const char*, size_t, persistent_message_tag)
Проблема: разрулить перегрузки от указателя и массива, сделав при этом интерфейс удобным для пользователя. Сейчас я решил вопрос слегка костыльно - дополнительным impermanent_message_tag в первую.
Как правильнее?

22 ответов

37 просмотров

Правильнее писать на Rust

Жаль, тут нет Царя

Dmitriy-[Отпуск] Автор вопроса

Вот когда напишете рантайм Rust'a для виндового kernel space - милости прошу, а сейчас это оффтопик)

Как там ваш раст, научился в статическую интроспекцию? А в CTFE?

Сейчас выясниться, что и винда не нужна

Без лирики в сообщениях

Мне хочется делать теги первыми всегда, чтобы форвардить... если что Но в принципе хочется, чтобы семантически разные параметры были разнотипными.

Dmitriy-[Отпуск] Автор вопроса
Constantine Drozdov
Мне хочется делать теги первыми всегда, чтобы форв...

Насчет расположения тегов - спасибо за мысль Разнотипные параметры сделать не удастся: конструктор от const char* требуют Стандарт и здравый смысл, а таковой для const char(&)[N] позволит бросить исключение без аллокаций (и даже без обращения к зарезервированной памяти)

Dmitriy [Отпуск]
Насчет расположения тегов - спасибо за мысль Разн...

Я скорее предпочел бы там конструктор от string_view, но это личное

Dmitriy-[Отпуск] Автор вопроса
Danya🔥
Бери fixed_string...

Внутри-то все равно будет храниться указатель (либо на строку плюс счётчик ссылок, либо на литерал напрямую)

Ну это сложно... Может тебе подумать о создающих объект функциях? Или даже сразу кидаться исключением из функции

Dmitriy [Отпуск]
Насчет расположения тегов - спасибо за мысль Разн...

Учти что от массива с размером конструктор должен быть шаблонным. Это тоже добавит сложности

https://gcc.godbolt.org/z/o7avdx7Mv

Dmitriy-[Отпуск] Автор вопроса
Andrey Davydov
https://gcc.godbolt.org/z/o7avdx7Mv

Концепты мне нельзя, но идею понял, благодарю)

Я использую наследника string_view с названием literal_view который только из массива конструируется ну или через оператор ""__lv. Или явным преобразованием to_literal_view. Перегрузки соответственно две, string_view/literal_view.

Dmitry Sokolov
Я использую наследника string_view с названием lit...

На всякий случай: идентификаторы с более чем одним андерскором подряд зарезервированы для имплементации в любой области видимости.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта