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

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

18 ответов

10 просмотров

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

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"" делает именно то, что нужно. А про форматирование отступов в литералах - ну честно, это же ведь ну натурально бред! Я не понимаю как народ всерьез столько уже это обсуждает.

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

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

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
Карта сайта