На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Бага в плюсах ?
    Читал-читал, так и не понял. Wound нашел багу или фичу? :)
      Цитата Wound @
      Так в том и дело что граничные кавычки не экранируются, а просто вставляются, безусловно. О чем и речь.

      Ну так они правильно вставляются. Просто не вставляй еще одни.

      Добавлено
      Цитата Wound @
      Это не я. Оно так было.

      Ну так убери оттуда кавычки при использовании quoted и будет то, что надо :-?

      Добавлено
      И еще интересно, как ты думаешь, что означает quoted на английском?
        Что делает std::quoted, есть ли там бага (или только фича) и как это можно применить — вроде, все поняли :)

        Wound, если изначальная проблема не решена — предлагаю создать новую тему, где будет чётче описан кейс и желаемое поведение
          Цитата D_KEY @
          И еще интересно, как ты думаешь, что означает quoted на английском?

          Так я ж не против. Пусть оно берет в кавычки - нафига она тогда экранирует. Мне изначально надо было просто заэкранировать строку. Все, без всяких кавычек.


          Цитата kopilov @
          Wound, если изначальная проблема не решена — предлагаю создать новую тему, где будет чётче описан кейс и желаемое поведение

          Свою проблему я решил еще до создания темы. Это так, чисто было побубнеть.
            Цитата Wound @
            Это так, чисто было побубнеть.

            Спасибо, хорошо посидели побубнели :D
              Цитата Wound @
              Цитата D_KEY @
              И еще интересно, как ты думаешь, что означает quoted на английском?

              Так я ж не против. Пусть оно берет в кавычки - нафига она тогда экранирует.

              Потому что в противном случае получится некорректная строка внутри. Для того, чтобы корректно взять в кавычки, необходимо экранировать кавычки внутри строки.
                Цитата D_KEY @
                Потому что в противном случае получится некорректная строка внутри.

                С чего вдруг внутри получится некорректная строка, если тебе просто нужно обернуть то что у тебя есть в кавычки? Она то как раз будет корректной, ты просто получишь закавыченный контент. Для кого оно станет некорректной то?

                Добавлено
                Цитата D_KEY @
                Для того, чтобы корректно взять в кавычки, необходимо экранировать кавычки внутри строки.

                Да нет конечно.
                ExpandedWrap disabled
                  #include <iostream>
                  #include <format>
                   
                  using namespace std;
                   
                  int main()
                  {
                      std::string str = "\"str\"ing\"";
                      std::cout << std::format("\"{}\"", str);
                      
                   
                      return 0;
                  }

                Вот что тут в выводе некорректного по твоему?
                ExpandedWrap disabled
                  ""str"ing""


                Добавлено
                Ладно, что то я подустал переливать из пустого в порожнее. Тем более щас тут дел много. Некогда мне спорить уже.
                  Цитата Wound @
                  Она то как раз будет корректной, ты просто получишь закавыченный контент.

                  Так не получишь. Ты легко можешь получить ""str"ing"", т.е. сначала пустая закавыченная строка, потом str без кавычек, потом закавыченный "ing" и потом одиначная кавычка.
                  Соответственно, прежде чем просто поставить символ " в начало и в конец строки, нужно экранировать кавычки внутри. И quoted позволяет это сделать и поддерживает минимальную кастомизацию для указания правил экранирования.
                    Кто-нибудь может-таки поведать великую тайну: чего надо-то?
                      Qraizer, по всей видимости, надо
                      Цитата Wound @
                      чисто было побубнеть.
                        Цитата D_KEY @
                        Соответственно, прежде чем просто поставить символ " в начало и в конец строки, нужно экранировать кавычки внутри.

                        Для чего их нужно экранировать? Ты опять все в кучу сыпешь. Экранирование нужно тогда, когда тебе важно чтоб вот эта кавычка не воспринималась как спецсимвол. А чтоб она не воспринималась, как спецсимвол, а как обычный текст - ее собственно и нужно экранировать. Так вот, для того, чтоб что то взять в кавычки - экранировать ничего не нужно. Достаточно окавычить исходную строку. Поэтому quoted() и какой нибудь условный escape() - это две разные вещи. Одно просто берет и все спецсимволы в строке - экранирует. А другое просто берет и оборачивает строку кавычками.

                        Добавлено
                        Цитата Qraizer @
                        Кто-нибудь может-таки поведать великую тайну: чего надо-то?

                        Да уже ничего не надо.
                          Цитата Qraizer @
                          Кто-нибудь может-таки поведать великую тайну: чего надо-то?

                          Просто Киле нужен был кавычкенг, а он использовал квотинг. Ну или наоборот :lool: И оно не так заработало :lool:
                            Цитата Qraizer @
                            Кто-нибудь может-таки поведать великую тайну: чего надо-то?

                            Чтобы либа подстроилась под то, что у кого-то уже написаны кавычки для обрамления и просто делала только экранирование без добавление " в начале и конце строки.

                            Добавлено
                            Цитата Wound @
                            Экранирование нужно тогда, когда тебе важно чтоб вот эта кавычка не воспринималась как спецсимвол.

                            Мне нужно, чтобы кавычка внутри не воспринималась как кавычка.

                            Добавлено
                            Цитата Wound @
                            Так вот, для того, чтоб что то взять в кавычки - экранировать ничего не нужно. Достаточно окавычить исходную строку

                            Нет. Не достаточно.
                            Потому что "aaa"bbb"aa" закавычена некорректно, т.к. кавычки внутри остались и интерпретируются как кавычки.

                            Добавлено
                            Цитата Wound @
                            Поэтому quoted() и какой нибудь условный escape() - это две разные вещи. Одно просто берет и все спецсимволы в строке - экранирует. А другое просто берет и оборачивает строку кавычками.

                            Условный escape() может быть полезен, да. Но описанный тобой quoted() является бесполезным.

                            Добавлено
                            Цитата Wound @
                            А другое просто берет и оборачивает строку кавычками.

                            Зачем? Если он не будет экранировать кавычки внутри, то как ты предлагаешь его использовать? Только в связке с escape() и будет иметь смысл это делать. Так и сделано в std.
                            То, что не помешал бы некий отдельный escape(), который бы не добавлял кавычки - согласен, можно было б. Но quoted вполне справляется с задачей.
                            Сообщение отредактировано: D_KEY -
                              Цитата D_KEY @
                              Мне нужно, чтобы кавычка внутри не воспринималась как кавычка.

                              Тогда очевидно тебе нужно экранирование, а не закавычивание.


                              Цитата D_KEY @
                              Нет. Не достаточно.
                              Потому что "aaa"bbb"aa" закавычена некорректно, т.к. кавычки внутри остались и интерпретируются как кавычки.

                              Типа ты споришь ради спора? Если тебе надо экранирование - то экранируй строку. Причем тут закавычивание? Не, не хочу я с тобой троллем вести диалог, ты несешь чушь какую то. Я тебе про васю, ты мне в ответе про петю. Все, иди с кем то другим общайся.
                              Сообщение отредактировано: Wound -
                                Цитата Wound @
                                Цитата D_KEY @
                                Мне нужно, чтобы кавычка внутри не воспринималась как кавычка.

                                Тогда очевидно тебе нужно экранирование, а не закавычивание.

                                Очевидно, что закавычивание, которое не умеет экранировать кавычки внутри, бесполезно.

                                Добавлено
                                Цитата Wound @
                                Типа ты споришь ради спора? Если тебе надо экранирование - то экранируй строку. Причем тут закавычивание? Не, не хочу я с тобой троллем вести диалог, ты несешь чушь какую то. Я тебе про васю, ты мне в ответе про петю. Все, иди с кем то другим общайся.

                                Ты создаешь кликбейтную тему, ругаешься на стандартную библиотеку, не можешь толком объяснить, зачем ты потом сам ставишь ещё один кавычки, сам признаешься, что тему создал ради "побубнеть", а тролль я :D
                                Сообщение отредактировано: D_KEY -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 2 [3]  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0538 ]   [ 15 queries used ]   [ Generated: 24.09.23, 13:13 GMT ]