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

34 просмотра

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

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
9
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта