На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (42) « Первая ... 35 36 [37] 38 39 ...  41 42  ( Перейти к последнему сообщению )  
> Инициализировать или не инициализировать , it's the question
    Цитата JoeUser @
    Инициализировать надо там, где надо инициализировать. Проверять нужно то, что нужно проверять.

    int a = void; спасёт тебя :)
      Цитата MyNameIsIgor @
      ЧЯДНТ? :jokingly:


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

      Цитата MyNameIsIgor @
      Вы полагаете, что ваши глючные лучше?


      Наши выверенные - гораздо красивше ваших дефолтно-вероятностных! :D
        Цитата JoeUser @
        Не прикидывайся шлангом, ведь понимаешь, что речь идет о текущей длине данных в контейнере.

        Ага, а ещё указатель на собственно данные. И мне совершенно непонятно, почему тратят мои такты на их инициализацию нулями. Ведь
        Цитата JoeUser @
        Инициализировать надо там, где надо инициализировать

        Я ничего этой строке не присваивал, так какого?
          Цитата OpenGL @
          int a = void; спасёт тебя


          Не кошерно, а вдруг это для кого-то тоже будет не совсем заметно?
          Лучше уж как-то так:

          int uninitialized a;

          Я бы еще понял - синтаксис для немцев.

          Добавлено
          Цитата MyNameIsIgor @
          Я ничего этой строке не присваивал, так какого?

          Такого, что это библиотечный тип, не встроенный. Вопросы к разработчику библиотеки.
            Цитата JoeUser @
            Наши выверенные - гораздо красивше ваших дефолтно-вероятностных! :D
            Наши дефолтно-определенные, а вот как раз ваши - глючно-вероятностные. :)
              Цитата JoeUser @
              Такого, что это библиотечный тип, не встроенный. Вопросы к разработчику библиотеки.

              Так дело в том, что требования к этой библиотеке и спецификацию языка и его встроенных типов пишут одни и те же люди. Потому и хочу от них последовательности.
                JoeUser, кстати в D есть инициализация по умолчанию :D
                  Цитата MyNameIsIgor @
                  Я ничего этой строке не присваивал, так какого?
                  Такого. Ты Flex Ferrum-а в игнор поставил, что ли? Класс не может быть таковым, если нарушены его инварианты. Если ты написал std::string s;, то очевидно, что тебе нужен объект класса std::string. А т.к. не каждая комбинация битов является std::string, нужно потратить твои такты, чтобы создать правильную комбинацию битов. Одну из правильных. Как это сделать, указано в конструкторе. int не имеет состояний. Любая комбинация битов даёт полноценный int. Твои такты никто не тратит. Всё логично?
                  Сообщение отредактировано: Qraizer -
                    Цитата MyNameIsIgor @
                    Потому и хочу от них последовательности.

                    Хотящих много. Я вот не хотел Perl6, а он гад вышел. Весь синтаксис переиначили (хотя так и надо было сделать изначально). Но что делать, если старый синтаксис уже в моск гвоздями вбит?

                    Лан ... пустое это все. Кроме "страховочного" профита, ниче не вижу.

                    Цитата applegame @
                    JoeUser, кстати в D есть инициализация по умолчанию


                    Это очень плохо и ты меня огорчил :wacko: Надо чтобы срочно убрали.
                      Цитата Qraizer @
                      Такого. Класс не может быть таковым, если нарушены его инварианты. Если ты написал std::string s;, то очевидно, что тебе нужен объект класса std::string. А т.к. не каждая комбинация битов является std::string, нужно потратить твои такты, чтобы создать правильную комбинацию битов. Одну из правильных.

                      Я и когда int x пишу, хочу объект типа int, но получаю неопределённое поведение при обращении :-? Я хочу так же для std::string.
                        Цитата JoeUser @
                        Не кошерно, а вдруг это для кого-то тоже будет не совсем заметно?
                        Лучше уж как-то так:

                        int uninitialized a;

                        Это другой вопрос.
                          Цитата MyNameIsIgor @
                          Я хочу так же для std::string.

                          Неправильно хочешь. Надо убрать встроенные типы, и сделать их объектными. Правда во что трансформируется тогда Цэ++ ... ну это уж из другой песни. А ля тот же Perl 6:
                          ExpandedWrap disabled
                            "Привет Вася!".say;
                            # вместо привычного
                            print "Привет Вася!";
                            Цитата MyNameIsIgor @
                            Я хочу так же для std::string.

                            Для std::string - не, вряд ли получится. А вот для std::pair<int, int> - пожалуйста. :) Или для std::vector<inet_addr>.

                            Добавлено
                            Цитата MyNameIsIgor @
                            Так дело в том, что требования к этой библиотеке и спецификацию языка и его встроенных типов пишут одни и те же люди. Потому и хочу от них последовательности.

                            Так она есть. Для каждого типа default initialization строго описана. :D

                            Добавлено
                            И вообще, а почему для int'а - именно 0? Мне вот константа -1 больше нравится. А для uint'а - std::limits<uint>::max_value(). Очень, знаешь ли, удобно.
                            Сообщение отредактировано: Flex Ferrum -
                              Цитата JoeUser @
                              Надо убрать встроенные типы, и сделать их объектными.

                              Кстати, смех смехом, а тогда бы любую переменную можно было бы инициализировать не подобием 0, NULL, nullptr - а однозначным NAN и ловить эксепшены при использовании неинициализированных переменных. Но это еще один слой жирка в и без того знатно пополневший Си.
                                Цитата Flex Ferrum @
                                Или для std::vector<inet_addr>

                                Не получится - например, при присваивании полезет удалять память по мусорному адресу.
                                Цитата Flex Ferrum @
                                Для каждого типа default initialization строго описана

                                Я в курсе. Мой вопрос то в другом: почему она разная? Для одних типов я получаю неопределённое поведение, а для вторых - нет.

                                Добавлено
                                Цитата Flex Ferrum @
                                И вообще, а почему для int'а - именно 0?

                                Хорошо, давайте zero initialization изменим.
                                Кстати, а почему пустая строка? Мне вот "abcd" нравится.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (42) « Первая ... 35 36 [37] 38 39 ...  41 42


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0781 ]   [ 15 queries used ]   [ Generated: 9.05.24, 17:53 GMT ]