На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 378 379 [380] 381 382 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата KILLER @
    и эта строка ничем не отличается от char*.

    char* сам по себе не обязан иметь нулевой символ в конце.

    Цитата

    В них есть тип строка?

    У них есть тип список и тип символ. Зачем им строка?

    Цитата
    Мне влом было писать свою, вот нашел в инете гдето:

    Будет работать для вектора.

    Цитата
    Цитата D_KEY @
    И что?

    Как и что? :blink: То что ты нарушаешь инкапсюляцию, вот что.

    Ничего ты не нарушаешь.

    Добавлено
    Цитата korvin @
    дык я и не выбираю по этой причине =)

    Молодец :D
      Цитата MyNameIsIgor @
      Тот, кто не понял банальные плюсовые trait'ы будет мне рассказывать, сколько надо думать в плюсах? :lool:

      да, и это показатель, видишь, даже для понимания такой банальщины приходится делать усилия. но с чего ты взял, что я не понял их? хотя я не берусь утверждать, что понял их до конца, в плюсовом обобщенном коде запутаться -- раз плюнуть. =)
        Цитата korvin @
        да, и это показатель, видишь, даже для понимания такой банальщины приходится делать усилия

        Смотря кому :scratch:
        Цитата korvin @
        хотя я не берусь утверждать, что понял их до конца, в плюсовом обобщенном коде запутаться -- раз плюнуть. =)

        Смотря какой это код :)
          Цитата D_KEY @
          char* сам по себе не обязан иметь нулевой символ в конце.

          А в С - обязан иметь нулевой символ в конце? нет? Тогда про какую совместимость ты говоришь?

          Цитата D_KEY @
          У них есть тип список и тип символ. Зачем им строка?

          затем что я написал:
          Цитата KILLER @
          Ну так в любом другом языке, не юзают массивы символов, для работы со строками(при условии что тип строка в этих ЯП присутствует)



          Цитата D_KEY @
          Будет работать для вектора.

          Ты в этом уверен на 100% ? Гарантию дашь?

          Цитата D_KEY @
          Ничего ты не нарушаешь.

          Нарушаешь нарушаешь. Внутренний буфер вектора, она как бы внутренний буфер вектора, а не твой буфер, что мне мешает написать вот так?
          ExpandedWrap disabled
            delete &vec[0];

          ? Я ведь ничего не нарушаю? Верно?
            KILLER, когда я читаю ваши посты, я начинаю сомневаться, что вы пишите на плюсах...
              Цитата KILLER @
              Цитата D_KEY @
              char* сам по себе не обязан иметь нулевой символ в конце.

              А в С - обязан иметь нулевой символ в конце? нет? Тогда про какую совместимость ты говоришь?

              Не обязан. Я с трудом понимаю, о чем ты сейчас :D

              Цитата
              Ты в этом уверен на 100% ? Гарантию дашь?

              Стандарт дает.

              Цитата
              Цитата D_KEY @
              Ничего ты не нарушаешь.

              Нарушаешь нарушаешь.

              Нет, не нарушаешь :)

              Цитата
              ExpandedWrap disabled
                delete &vec[0];

              ? Я ведь ничего не нарушаю? Верно?

              А вот тут нарушаешь :)
                Цитата D_KEY @
                Не обязан. Я с трудом понимаю, о чем ты сейчас :D

                Ну ты говоришь что С-строки в С++ остались для совместимости с С-строками в С, при этом в С++ ввели спец класс для работы со строками std::string. Вот я и не могу понять, какая нафиг совместимость с С-строками - если это только условно строки.

                Цитата D_KEY @
                Стандарт дает.

                Покажи место, где стандарт это гарантирует.
                Заодно попробуй откомпилить и запустить это с векторами.

                Цитата D_KEY @
                Нет, не нарушаешь :)

                Цитата D_KEY @
                А вот тут нарушаешь :)

                ВНЕЗАПНО! Как же нарушаю? Если ты сам сказал что не нарушаю?

                Добавлено
                Цитата MyNameIsIgor @
                KILLER, когда я читаю ваши посты, я начинаю сомневаться, что вы пишите на плюсах...

                А вы не читайте мои посты, если вам легче станет от этого.

                Добавлено
                D_KEY, я так понимаю работать с векторами ты примерно так будешь?
                ExpandedWrap disabled
                     std::string str = " KILLER ";
                     std::vector<char> vec(str.begin(), str.end());
                   
                     trim(&vec[0], TRIM_BOTH);
                     std::string outStr(vec.begin(), vec.end());

                ?
                Сообщение отредактировано: KILLER -
                  Цитата KILLER @
                  Ну ты говоришь что С-строки в С++ остались для совместимости с С-строками в С, при этом в С++ ввели спец класс для работы со строками std::string. Вот я и не могу понять, какая нафиг совместимость с С-строками - если это только условно строки.

                  Строковые литералы, например. Хотя видимо лучше проехать эту тему, я тут не пойму в чем мы не согласны.

                  Цитата
                  Покажи место, где стандарт это гарантирует.

                  Цитата 23.2.4/1
                  The elements of a
                  vector are stored contiguously, meaning that if v is a vector<T, Allocator> where T is some type
                  other than bool, then it obeys the identity &v[n] == &v[0] + n for all 0 <= n < v.size().


                  Цитата
                  ВНЕЗАПНО! Как же нарушаю? Если ты сам сказал что не нарушаю?

                  ВНЕЗАПНО, ты еще можешь сделать delete даже константному указателю :lol:
                    Цитата D_KEY @
                    The elements of a
                    vector are stored contiguously, meaning that if v is a vector<T, Allocator> where T is some type
                    other than bool, then it obeys the identity &v[n] == &v[0] + n for all 0 <= n < v.size().

                    Ну так погоди, где там гарантии того, что при изменении внутреннего буфера вектора, не через метод вектора, вектор будет аналогично изменять свой size ?
                    Функции бывают разные, есть которы усекают длину и убирают символы, некоторые вообще пихают какието данные в переданный буфер, какие гарантии, что при всех возможных удачных реализациях, передавая вектор в качестве под опытной С-строки, я не отгребу какую нибудь ошибку или еще чего то непредусмотренного мною?

                    Цитата D_KEY @
                    ВНЕЗАПНО, ты еще можешь сделать delete даже константному указателю :lol:

                    Почему внезапно? я тебе намекаю на то, что ты отдаешь внутренний буфер вектора, некой функции, которая с ним может сделать все что угодно...
                      Цитата KILLER @
                      D_KEY, я так понимаю работать с векторами ты примерно так будешь?
                      ExpandedWrap disabled
                           std::string str = " KILLER ";
                           std::vector<char> vec(str.begin(), str.end());
                         
                           trim(&vec[0], TRIM_BOTH);
                           std::string outStr(vec.begin(), vec.end());

                      ?

                      Можно и так, только
                      ExpandedWrap disabled
                        std::string outStr(&vec[0]);


                      Добавлено
                      Цитата KILLER @
                      Ну так погоди, где там гарантии того, что при изменении внутреннего буфера вектора, не через метод вектора, вектор будет аналогично изменять свой size ?

                      Причем тут size() и его изменение :wacko: ?

                      Цитата
                      есть которы усекают длину и убирают символы

                      Ты не можешь усечь длину у буфера, который тебе передали.

                      Цитата
                      я тебе намекаю на то, что ты отдаешь внутренний буфер вектора, некой функции, которая с ним может сделать все что угодно...

                      Она с ним может сделать ровно тоже самое, что сможет сделать с обычным массивом. Не больше и не меньше.
                      Сообщение отредактировано: D_KEY -
                        Цитата D_KEY @
                        Можно и так, только

                        только там уже ошибка, так как вот это:
                        ExpandedWrap disabled
                             std::string str = " KILLER ";
                             std::vector<char> vec(str.begin(), str.end());

                        Не скопирует '\0' символ в вектор, его туда вручную нужно будет передавать. забыли отгребли, провозюкались N времени. Очень удобно.

                        Цитата D_KEY @
                        Причем тут size() и его изменение :wacko: ?

                        При том, что функция левая, и ты понятия не имеешь что там в ней происходит... Малоли...

                        Цитата D_KEY @
                        Ты не можешь усечь длину у бефера, который тебе передали.

                        в случае с С-строками, могу, всего то передвинуть '\0'

                        Цитата D_KEY @
                        Она с ним может сделать ровно тоже самое, что сможет сделать с обычным массивом. Не больше и не меньше.

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

                          Ну так зачем ты так написал :-?

                          Цитата
                          Цитата D_KEY @
                          Ты не можешь усечь длину у бефера, который тебе передали.

                          в случае с С-строками, могу, всего то передвинуть '\0'

                          Ты точно так же можешь передвинуть '\0' в буфере на основе вектора.

                          Ребят, о чем этот парень?

                          Цитата
                          Но нужно учитывать некоторые ньюансы, которые можно легко упустить из виду.

                          При разработке на С и С++ это всегда нужно делать :)

                          Добавлено
                          KILLER, факт в том, что если тебе нужно взаимодействие с низкоуровневым С-API, то ты можешь передавать вектор. Как для чтения, так и для записи. О чем ты споришь?
                            Цитата D_KEY @
                            Ну так зачем ты так написал :-?

                            Что бы спросить у тебя правильно ли я написал. ты сказал да, код прошел ревью. Ошибка на стороне клиента, профит.

                            Цитата D_KEY @
                            Ты точно так же можешь передвинуть '\0' в буфере на основе вектора.

                            Проблема не в этом, проблема в том, что вектор так и просится чтобы его рассматривали именно как массив данных, а не строки. Понимаешь к чему я клоню?

                            Цитата D_KEY @
                            Цитата
                            Но нужно учитывать некоторые ньюансы, которые можно легко упустить из виду.

                            При разработке на С и С++ это всегда нужно делать :)

                            Ничего не напоминает?
                            Цитата korvin @

                            Цитата
                            А в плюсах принято долго думать головой, прежде чем шагнуть :)

                            FIXED

                            :D

                            Добавлено
                            Цитата D_KEY @
                            Ребят, о чем этот парень?

                            О том, что со строками в С++ плохо, очень плохо.

                            Цитата D_KEY @
                            KILLER, факт в том, что если тебе нужно взаимодействие с низкоуровневым С-API, то ты можешь передавать вектор. Как для чтения, так и для записи. О чем ты споришь?

                            О том, что вектор - это не строка, это набор данных, и работать с ним будут как с набором данных, а не со строкой. И очень много ньюансов можно упустить из виду.
                              Цитата KILLER @
                              Ничего не напоминает?

                              Не используйте плюсы. Вас кто-то заставляет? Или вы ничего другого не знаете? :)

                              Добавлено
                              Цитата D_KEY @
                              Ребят, о чем этот парень?

                              Он хочет, чтобы плюсовые строки могли быть буферами в сишном API. Я не только не представляю как это сделать... я просто чушью считаю :)
                                Цитата MyNameIsIgor @
                                Не используйте плюсы. Вас кто-то заставляет? Или вы ничего другого не знаете? :)

                                Мы тут рассматриваем недостатки ЯП, или обсуждаем что мне стоит использовать, а что не стоит?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 378 379 [380] 381 382 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5015 ]   [ 15 queries used ]   [ Generated: 30.07.26, 16:00 GMT ]