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

    Они гораздо логичнее и современнее :)
    Цитата KILLER @
    Да его уже давно забросили, но как это может относится к его ущербности?

    Да? Так вроде же туда не так давно - при выходе VS2010 - впилили всякие штуки, чтобы можно было гуйню делать не менее красивую, чем на дотнете... Хотя хз, я не считаю нужным следить за судьбой MFC - он слишком ущербен :)
    Цитата KILLER @
    нафиг они юзают char*, если есть std::string ?

    Я только бегло смотрел код. Как минимум для строковых литералов в коде :) Вполне может быть, что для взаимодействия с каким-то API.
    Цитата KILLER @
    А всякие WinApi причем тут?

    Вот я и говорю - не при чём он, нафиг не сдался :)
    Цитата KILLER @
    Да дело не char*, std::string - он по своей сути ущербен. Чем он лучше вектора? И зачем он есть, мне лично не понятно.

    Он лучше как минимум trait'ами на символы :yes: А вообще, vector - массив, а basic_string - строка. Прочувствуйте разницу :) А вот char* - это не сроки, это просто указатель на кусок памяти :)
      Цитата MyNameIsIgor @
      Они гораздо логичнее и современнее

      А ну да, я забыл. В чем они логичнее?

      Цитата MyNameIsIgor @
      Да? Так вроде же туда не так давно - при выходе VS2010 - впилили всякие штуки, чтобы можно было гуйню делать не менее красивую, чем на дотнете... Хотя хз, я не считаю нужным следить за судьбой MFC - он слишком ущербен

      Ты так и не пояснил чем он ущербен? или это с твоей колокольни?

      Цитата MyNameIsIgor @
      Вот я и говорю - не при чём он, нафиг не сдался

      Так и я говорю, речь не о нем, а вы мне все о WinAPI. Я уже жалею что я его в качестве примера привел...

      Цитата MyNameIsIgor @
      Он лучше как минимум trait'ами на символы А вообще, vector - массив, а basic_string - строка. Прочувствуйте разницу А вот char* - это не сроки, это просто указатель на кусок памяти

      basic_string - ущербная строка. Все что я могу о ней сказать.
        Цитата KILLER @
        Господа ценители std::string, попробуйте оформить классно с помощью std::string класса, вот такой SQL запрос:

        ExpandedWrap disabled
          #include <string>
          #include <sstream>
          std::string MakeSQL(long date_from, long date_to, const std::string& comment)
          {
            std::ostringstream os;
            os << "SELECT DISTINCT table1.code\n"
                  "FROM table1 \n"
                  "JOIN table2 .set = table1.primary_key \n"
                  "WHERE \n"
                  "table1.date between " << date_from << " and " << date_to << " AND \n"
                  "table2.text like '" << comment << "'";
            return os.str();
          }

        Не? :whistle:

        Добавлено
        Цитата KILLER @
        А ну да, я забыл. В чем они логичнее?

        Да в чём не возьмись :D
        Цитата KILLER @
        Ты так и не пояснил чем он ущербен? или это с твоей колокольни?

        Пояснял, повторяться не стану.
        Цитата KILLER @
        Так и я говорю, речь не о нем, а вы мне все о WinAPI. Я уже жалею что я его в качестве примера привел...

        Вот правильно делаете ;)
        Цитата KILLER @
        basic_string - ущербная строка. Все что я могу о ней сказать.

        Как, однако, мало вы о ней знаете ;)
          Цитата MyNameIsIgor @
          Не?

          не :no:
          Цитата KILLER @
          Мне очень интересно, как вы сейчас будете извращаться через ostring_stream класс, но хотелось бы увидеть реализацию с помощью std::string могучего класса.

          Я хочу посмотреть на убожество в виде str += tmp_str; а также переводы long'ов в строку с помощью itoa :lol:
            Цитата KILLER @
            Я хочу посмотреть на убожество в виде str += tmp_str; а также переводы long'ов в строку с помощью itoa

            Вам к korvin:) Это он любит "С++ без шаблонов" :) А у меня есть язык и я его использую. В basic_string нет того, что есть у stream'ов, именно потому, что есть stream'ы. И есть вы их не используете - это ваши интимные сложности, с ними не ко мне :)
              Цитата MyNameIsIgor @
              Да в чём не возьмись

              ну например.

              Цитата MyNameIsIgor @
              Пояснял, повторяться не стану.

              ты привел два фактора, первый - монструозность, второй - устарело. С первым я не согласен, второй никак не влияет на ущербность. ;)

              Цитата MyNameIsIgor @
              Вот правильно делаете

              Конечно, я ведь уже язык сломал открыто намекать что WinApi - тут никселу ни к городу... Я его привел в качестве примера, а вы тут раздули...

              Цитата MyNameIsIgor @
              Как, однако, мало вы о ней знаете

              А в там есть что знать? Что там есть такого что я не знаю?

              Добавлено
              Цитата MyNameIsIgor @
              Вам к korvin'у Это он любит "С++ без шаблонов" А у меня есть язык и я его использую. В basic_string нет того, что есть у stream'ов, именно потому, что есть stream'ы. И есть вы их не используете - это ваши интимные сложности, с ними не ко мне

              Дело не в стримах, дело в том, что чуть что мне нужно заводить левую временную переменную, и от этого никуда не дется, хоть на С++ написано, хоть на С. А зачем мне такое упало?

              Добавлено
              А вообще, все это было к тому, что в делфях ущербные строки... В своем глазу бревно вытащите ;)
              Сообщение отредактировано: KILLER -
                Цитата KILLER @
                ну например.

                Ну, вот и выбирайте :D
                Цитата KILLER @
                ты привел два фактора, первый - монструозность, второй - устарело. С первым я не согласен, второй никак не влияет на ущербность.

                Я думаю, что влияет. Устаревшее барахло надо выкидывать.
                Цитата KILLER @
                А в там есть что знать? Что, что та месть такого что я не знаю?

                Да, по ходу дела, всё... Начиная от фундамента - что есть строка и зачем она есть.
                Цитата KILLER @
                Дело не в стримах, дело в том, что чуть что мне нужно заводить левую временную переменную, и от этого никуда не дется, хоть на С++ написано, хоть на С. А зачем мне такое упало?

                Эту?
                ExpandedWrap disabled
                  std::ostringstream os;

                Вах, какое горе, целая переменная :D
                  Цитата MyNameIsIgor @
                  Ну, вот и выбирайте

                  так неизчего выбирать пока, вы так и не назвали ключевые моменты ущербности MFC, по сему я воспринимаю это как пустой троллинг, не более.

                  Цитата MyNameIsIgor @
                  Я думаю, что влияет. Устаревшее барахло надо выкидывать.

                  Как чётко подмечено, интересно что все это барахло в С++ делает?

                  Цитата MyNameIsIgor @
                  Да, по ходу дела, всё... Начиная от фундамента - что есть строка и зачем она есть.

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

                  Цитата MyNameIsIgor @
                  Эту?

                  Цитата MyNameIsIgor @
                  Вах, какое горе, целая переменная

                  Нет, не эту, а костыль из временного массива или вектора...

                  А то, был пример того, что дает std::string.
                    Цитата KILLER @
                    Можешь привести пример сложности и неочевидности ?
                    Ага. Могу. Значит Вижула->create project->MFC Application->DialogBased(остальные ещё больше)->finish

                    и там какая то жуткая мешанина из кривого подобия ООП и макросов.

                    Ах да, вот что мне сказал на это дело линкер:
                    ExpandedWrap disabled
                      1>Linking...
                      1>Embedding manifest...
                      1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
                      1>Copyright (C) Microsoft Corporation.  All rights reserved.
                      1>LINK : fatal error LNK1000: Internal error during IncrBuildImage
                      1>  Version 9.00.21022.08
                      1>  ExceptionCode            = C0000005
                      1>  ExceptionFlags           = 00000000
                      1>  ExceptionAddress         = 0144FCF7 (013D0000) "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe"
                      1>  NumberParameters         = 00000002
                      1>  ExceptionInformation[ 0] = 00000000
                      1>  ExceptionInformation[ 1] = 00E5D670
                      1>CONTEXT:
                      1>  Eax    = 400BC1DC  Esp    = 002BF02C
                      1>  Ebx    = 40008168  Ebp    = 002BF054
                      1>  Ecx    = 00E5D670  Esi    = 400BC064
                      1>  Edx    = 002BF044  Edi    = 013DD6C0
                      1>  Eip    = 0144FCF7  EFlags = 00010246
                      1>  SegCs  = 0000001B  SegDs  = 00000023
                      1>  SegSs  = 00000023  SegEs  = 00000023
                      1>  SegFs  = 0000003B  SegGs  = 00000000
                      1>  Dr0    = 00000000  Dr3    = 00000000
                      1>  Dr1    = 00000000  Dr6    = 00000000
                      1>  Dr2    = 00000000  Dr7    = 00000000
                    :lol:
                      Цитата Повстанець @
                      Ага. Могу. Значит Вижула->create project->MFC Application->DialogBased(остальные ещё больше)->finish

                      И в чем тут убогость, я не понимаю? На каждом шаге, тебе предлагается выбрать стиль для диалога, изменить названия генерируемых классов и т.д. Или ты хотел как в билдере, хуяк и у тебя project1, Form1. Все рады и довольны, нажимай F5 и улыбайся, фсё, теперь ты тру программер, так чтоле? :D

                      Цитата Повстанець @
                      и там какая то жуткая мешанина из кривого подобия ООП и макросов.

                      Где? Месадж мапы? да ты просто не понимаешь нафиг они там нужны, поэтому оно тебе кривым и кажеца.

                      Цитата Повстанець @
                      Ах да, вот что мне сказал на это дело линкер:

                      хз :-? Поставь лицензионную версию студии, у меня таких трабл небыло отродясь :whistle:

                      Еще аргументы будут?

                      Добавлено
                      Повстанець, да и вообще это наезды не на MFC, а на Microsoft VS2008 в частности(касательно ошибки твоей), как я понял, тут это не актуально как бэ...
                      Сообщение отредактировано: KILLER -
                        Цитата KILLER @
                        Я как раз таки этого всячески стараюсь избегать. std::string - это говно поделие, которое мало где прикрутишь, а также приходица постоянно писать лишнего кода, при его использовании...
                        А ты не смешивай массивы символов со строками, и не будет лишнего кода.
                        Повторяю ещё раз: в C не было строк, и строковые литералы - единственное, что хоть как-то на строки смахивает - тоже являются массивами символов, константными. Если ты имеешь желаение в legacy API, основанном на C-style, использовать std::basic_string<>, который именно что строки, не удивительно, что ты сталкиваешься с проблемами. Только это не проблемы std::basic_string<>, это проблемы твоего желания применить абстракцию в неприменимом для неё контенсте. Раз тебе мало куда удаётся прикрутить std::basic_string<>, значит тебе просто не нужна абстракция строки. Вот std::vector<> - это массив во всей красе, и при этом Плюсовый, а не legacy. К нему есть претензии? И к слову, на <vector>, <algorithm> и <functional> большая часть функционала std::basic_string<> реализуется запросто. Фактически из кардинальных отличий только одно: использование итераторов вместо индексов и длин.
                        Цитата KILLER @
                        Да дело не char*, std::string - он по своей сути ущербен. Чем он лучше вектора? И зачем он есть, мне лично не понятно.
                        Та тем, что это строка, а не массив! Ты их синопсисы не сравнивал, что ли? Векторый интерфейс ориентирован на удобную работу с массивом, строковый - на удобные строковые операции. И требования в ним разные по этой причине. Строковый класс может оптимизировать свою реализацию так, что бы строковые операции были максимально эффективными, вектор - на максимальную совместимость с абстракцией "массив".
                        Цитата KILLER @
                        Мне очень интересно, как вы сейчас будете извращаться через ostring_stream класс, но хотелось бы увидеть реализацию с помощью std::string могучего класса.
                        А почему, собственно-то? KILLER, вот ты прикидываешься что ли, что якобы не понимаешь, что массив, строка и поток - это три разных сущности? По-твоему Стандартный класс должен быть настолько жирен, чтобы вмещать всё что душе угодно? А почему дата у тебя типа long, а не struct tm? С какой стати не учитываются пользовательскые предпочтения по форматированию даты? Давай в этот класс ещё и <locale> запихаем.
                        KILLER, подтяни свои скиллы в декомпозиции. Раз уж тебе потребовалась абстракция, которая ещё и дуде игрец, так напиши да пользуйся. STL вот она вся в твоём распоряжении.
                          Цитата KILLER @
                          ИМХО, достойно башорга

                          Конечно, речь ведь идет все о тех же С-строках. Вот тебе кусок кода:

                          void func(char* dst, const char* src)
                          {
                          strcpy_safe(dst, src); //! моя функция, ее реализация неважна, работает с голыми указателями на char
                          }

                          На глаз скажешь это я на С++ или на чистом С написал? std::string схавает?

                          Ну ты же там ясно написал, что функция принимает char*. Еще бы int вписал и возмущался, почему "21342" не принимает.
                          Скрытый текст
                          Мне одному кажется, что KILLER тупо троллит?
                            Цитата OpenGL @
                            Скрытый текст
                            Мне одному кажется, что KILLER тупо троллит?

                            Скрытый текст
                            Нет :)
                            Кстати, лучше бы он в "другую сторону" троллил, а то разбежались не только Delphi'цы, но и даже сторонники Haskell'я
                              Я седня не смогу писать целый день, ибо на работе срочная таска. Посему я замолкаю... :ph34r:
                                Какой тип в С++ имеет константа вида "some text" ?
                                Какой конструктор будет вызван, если написать:
                                ExpandedWrap disabled
                                  std::string s = "some text";

                                Уж не
                                ExpandedWrap disabled
                                  string ( const char * s );

                                ли ? :)
                                Сообщение отредактировано: IL_Agent -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 382 383 [384] 385 386 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5503 ]   [ 14 queries used ]   [ Generated: 30.07.26, 13:56 GMT ]