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 ответов

14 просмотров

Правильнее писать на 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...

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

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
а чем хуже?
Alexey Kulakov
10
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
1
Карта сайта