Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.77.114] |
|
Страницы: (42) « Первая ... 35 36 [37] 38 39 ... 41 42 ( Перейти к последнему сообщению ) |
Сообщ.
#541
,
|
|
|
Цитата JoeUser @ Инициализировать надо там, где надо инициализировать. Проверять нужно то, что нужно проверять. int a = void; спасёт тебя |
Сообщ.
#542
,
|
|
|
Не прикидывайся шлангом, ведь понимаешь, что речь идет о текущей длине данных в контейнере. Наши выверенные - гораздо красивше ваших дефолтно-вероятностных! |
Сообщ.
#543
,
|
|
|
Цитата JoeUser @ Не прикидывайся шлангом, ведь понимаешь, что речь идет о текущей длине данных в контейнере. Ага, а ещё указатель на собственно данные. И мне совершенно непонятно, почему тратят мои такты на их инициализацию нулями. Ведь Я ничего этой строке не присваивал, так какого? |
Сообщ.
#544
,
|
|
|
Цитата OpenGL @ int a = void; спасёт тебя Не кошерно, а вдруг это для кого-то тоже будет не совсем заметно? Лучше уж как-то так: int uninitialized a; Я бы еще понял - синтаксис для немцев. Добавлено Цитата MyNameIsIgor @ Я ничего этой строке не присваивал, так какого? Такого, что это библиотечный тип, не встроенный. Вопросы к разработчику библиотеки. |
Сообщ.
#545
,
|
|
|
Цитата JoeUser @ Наши дефолтно-определенные, а вот как раз ваши - глючно-вероятностные. Наши выверенные - гораздо красивше ваших дефолтно-вероятностных! |
Сообщ.
#546
,
|
|
|
Цитата JoeUser @ Такого, что это библиотечный тип, не встроенный. Вопросы к разработчику библиотеки. Так дело в том, что требования к этой библиотеке и спецификацию языка и его встроенных типов пишут одни и те же люди. Потому и хочу от них последовательности. |
Сообщ.
#547
,
|
|
|
JoeUser, кстати в D есть инициализация по умолчанию
|
Сообщ.
#548
,
|
|
|
Цитата MyNameIsIgor @ Такого. Ты Flex Ferrum-а в игнор поставил, что ли? Класс не может быть таковым, если нарушены его инварианты. Если ты написал std::string s;, то очевидно, что тебе нужен объект класса std::string. А т.к. не каждая комбинация битов является std::string, нужно потратить твои такты, чтобы создать правильную комбинацию битов. Одну из правильных. Как это сделать, указано в конструкторе. int не имеет состояний. Любая комбинация битов даёт полноценный int. Твои такты никто не тратит. Всё логично? Я ничего этой строке не присваивал, так какого? |
Сообщ.
#549
,
|
|
|
Цитата MyNameIsIgor @ Потому и хочу от них последовательности. Хотящих много. Я вот не хотел Perl6, а он гад вышел. Весь синтаксис переиначили (хотя так и надо было сделать изначально). Но что делать, если старый синтаксис уже в моск гвоздями вбит? Лан ... пустое это все. Кроме "страховочного" профита, ниче не вижу. Цитата applegame @ JoeUser, кстати в D есть инициализация по умолчанию Это очень плохо и ты меня огорчил Надо чтобы срочно убрали. |
Сообщ.
#550
,
|
|
|
Цитата Qraizer @ Такого. Класс не может быть таковым, если нарушены его инварианты. Если ты написал std::string s;, то очевидно, что тебе нужен объект класса std::string. А т.к. не каждая комбинация битов является std::string, нужно потратить твои такты, чтобы создать правильную комбинацию битов. Одну из правильных. Я и когда int x пишу, хочу объект типа int, но получаю неопределённое поведение при обращении Я хочу так же для std::string. |
Сообщ.
#551
,
|
|
|
Цитата JoeUser @ Не кошерно, а вдруг это для кого-то тоже будет не совсем заметно? Лучше уж как-то так: int uninitialized a; Это другой вопрос. |
Сообщ.
#552
,
|
|
|
Цитата MyNameIsIgor @ Я хочу так же для std::string. Неправильно хочешь. Надо убрать встроенные типы, и сделать их объектными. Правда во что трансформируется тогда Цэ++ ... ну это уж из другой песни. А ля тот же Perl 6: "Привет Вася!".say; # вместо привычного print "Привет Вася!"; |
Сообщ.
#553
,
|
|
|
Цитата MyNameIsIgor @ Я хочу так же для std::string. Для std::string - не, вряд ли получится. А вот для std::pair<int, int> - пожалуйста. Или для std::vector<inet_addr>. Добавлено Цитата MyNameIsIgor @ Так дело в том, что требования к этой библиотеке и спецификацию языка и его встроенных типов пишут одни и те же люди. Потому и хочу от них последовательности. Так она есть. Для каждого типа default initialization строго описана. Добавлено И вообще, а почему для int'а - именно 0? Мне вот константа -1 больше нравится. А для uint'а - std::limits<uint>::max_value(). Очень, знаешь ли, удобно. |
Сообщ.
#554
,
|
|
|
Цитата JoeUser @ Надо убрать встроенные типы, и сделать их объектными. Кстати, смех смехом, а тогда бы любую переменную можно было бы инициализировать не подобием 0, NULL, nullptr - а однозначным NAN и ловить эксепшены при использовании неинициализированных переменных. Но это еще один слой жирка в и без того знатно пополневший Си. |
Сообщ.
#555
,
|
|
|
Цитата Flex Ferrum @ Или для std::vector<inet_addr> Не получится - например, при присваивании полезет удалять память по мусорному адресу. Цитата Flex Ferrum @ Для каждого типа default initialization строго описана Я в курсе. Мой вопрос то в другом: почему она разная? Для одних типов я получаю неопределённое поведение, а для вторых - нет. Добавлено Цитата Flex Ferrum @ И вообще, а почему для int'а - именно 0? Хорошо, давайте zero initialization изменим. Кстати, а почему пустая строка? Мне вот "abcd" нравится. |