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

А если кому-то нужны абсолютные?

18 ответов

35 просмотров

Что такое "абсолютные"? Чтобы у нас было несколько строк и каждая непременно начиналась с одного или более пробелов? Много таких примеров удастся привести? Я буду впечатлён хотя бы одним примером из реальной кодовой базы В то же время, сейчас форматирование кода ломается у всех из-за сырых литералов. Или не ломается. Тогда ломается содержимое литерала

Boris-Usievich Автор вопроса
Ofee Oficsu
Что такое "абсолютные"? Чтобы у нас было несколько...

Ну например можно засунуть в литерал многострочный отформатированный текст для вывода в консоль одним куском

Boris Usievich
Ну например можно засунуть в литерал многострочный...

Так в этом и проблема. Сейчас это ломает отступы в коде. Потому что для сохранения исходного форматирования текста, в нём не будет отступов

Boris Usievich
Ну например можно засунуть в литерал многострочный...

прикольная штука, никогда раньше не использовал const char *str = "⣿⣿⡟⡹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" "⣿⣿⢱⣶⣭⡻⢿⠿⣛⣛⣛⠸⣮⡻⣿⣿⡿⢛⣭⣶⣆⢿⣿\n" "⣿⡿⣸⣿⣿⣿⣷⣮⣭⣛⣿⣿⣿⣿⣶⣥⣾⣿⣿⣿⡷⣽⣿\n" "⣿⡏⣾⣿⣿⡿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿\n" "⣿⣧⢻⣿⡟⣰⡿⠁⢹⣿⣿⣿⣋⣴⠖⢶⣝⢻⣿⣿⡇⣿⣿\n" "⠩⣥⣿⣿⣴⣿⣇⠀⣸⣿⣿⣿⣿⣷⠀⢰⣿⠇⣿⣭⣼⠍⣿\n" "⣿⡖⣽⣿⣿⣿⣿⣿⣿⣯⣭⣭⣿⣿⣷⣿⣿⣿⣿⣿⡔⣾⣿\n" "⣿⡡⢟⡛⠻⠿⣿⣿⣿⣝⣨⣝⣡⣿⣿⡿⠿⠿⢟⣛⣫⣼⣿\n" "⣿⣿⣿⡷⠝⢿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣾⡩⣼⣿⣿⣿⣿⣿\n" "⣿⣿⣯⡔⢛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣭⣍⣨⠿⢿⣿⣿⣿\n" "⣿⡿⢫⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣝⣿\n"; cout << str;

Ofee Oficsu
Что такое "абсолютные"? Чтобы у нас было несколько...

Я прекрасно понимаю и разделяю вашу боль. Тем не менее я могу себе представить контрпример: тот же yaml может собираться по кускам. В таком случае кусок, который вставляется куда-то в середину файла может потребовать постоянного смещения для всех элементов.

magras
Я прекрасно понимаю и разделяю вашу боль. Тем не м...

Справедливое замечание, хотя и думаю, что это более редкий пример. Может, нам просто нужен ещё один тип сырых сертификатов?

Ofee Oficsu
Справедливое замечание, хотя и думаю, что это боле...

Если этим заниматься, наверное правильно было бы разделить различные свойства литералов: 1) однострочные / многострочные 2) обработка эскейп последовательностей 3) сохранение отступов (только для многострочных) 4) format-strings (?) 5) encoding (byte-strings (?) и юникоды всех цветов) На первый взгляд текущая реализация R"()" не позволяет разделить многострочность и обработку эскейпов, но возможно была выбрана заглавная буква как раз чтобы иметь возможность позже добавить однострочный r"". К сожалению, этот подход не получится обобщить из-за L"" и U"". Ну и очевидно, что нужно проанализировать как это реализовано в других языках. Python очевидный кандидат. Игнат выше упоминал stripIndent из джавы. Я не могу сказать где еще делают что-то интересное со строковыми литерами.

Ofee Oficsu
Справедливое замечание, хотя и думаю, что это боле...

Я сейчас не очень слежу за развитием компайлтайм вычислений, но не получится решить задачу удаления отступов с помощью обычной consteval функции? upd: В прочем, вряд ли: плюсы же не позволяют возвращать массивы по значению.

magras
Если этим заниматься, наверное правильно было бы р...

а ещё можно иметь в языке CTFE и написать constexpr/consteval функцию питоновской textwrap.dedent и не мучить грамматику языка 50 видами строковых литералов

magras
Я сейчас не очень слежу за развитием компайлтайм в...

Думаю, что попробовать что-то с strip_ident<R"(...)"> и возвратом указателя/вью сделать, но всё же, больше хотелось бы иметь красивое решение на уровне языка

Ofee Oficsu
Думаю, что попробовать что-то с strip_ident<R"(......

то есть ты бы хотел ещё сильнее раздуть синтаксис с++ 🌚 А ты хорош

Ofee Oficsu
Думаю, что попробовать что-то с strip_ident<R"(......

ИМХО красивые (вот именно прям красивые) решения на уровне языка обычно решают/упрощают больше чем ровно одну проблему например deducing this

Aniki Hi$ok@ 🌈 Z 🐀
то есть ты бы хотел ещё сильнее раздуть синтаксис ...

А вы предлагаете оставить самостоятельно висеть в языке просто сломанную (с точки зрения практического использования) фичу? Да и грамматика же не усложняется – добавляется разве что ещё один префикс для строки. А содержимое такого литерала – уже не грамматика

Гражданин Котейко
ИМХО красивые (вот именно прям красивые) решения н...

Смысл плюсов не в том что бы дать тебе красивые инструменты на уровне языка. Смысл в том что бы дать тебе инструменты на уровне языка при помощи которых ты можешь построить красивые инструменты

Гражданин Котейко
ИМХО красивые (вот именно прям красивые) решения н...

Проблема-то в том, что уже существующая фича сломана изначально

Ofee Oficsu
А вы предлагаете оставить самостоятельно висеть в ...

да, я бы ещё добавил, если такого нет, параметр компиляции -NOCSTYLE, который отключит все си штуки, которые дублируются стл либо синтаксисом с++

Vadim Shatov
Смысл плюсов не в том что бы дать тебе красивые ин...

из инструментов уровня языка, способных примениться не более чем ровно в одном юзкейсе, как-то так себе что-то строить: как только хочешь построить что-то новое, выясняется, что под этот юзкейс ещё нет специального инстурмента на уровне языка, чтобы это сделать в итоге имеем парадоксальный язык, в котором одновременно слишком много фич и постоянно каких-то фич нехватает

Ofee Oficsu
Проблема-то в том, что уже существующая фича слома...

глупости! R"" делает именно то, что нужно. А про форматирование отступов в литералах - ну честно, это же ведь ну натурально бред! Я не понимаю как народ всерьез столько уже это обсуждает.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта