LINUX.ORG.RU

Планы по выпуску GTK+ версии 3

 


1

0

В списке рассылки gtk-devel-list обсуждаются планы выпуска GTK+ версии 3. Основные подготовительные действия, которые необходимо предпринять в текущей ветке:

  • Спрятать все открытые поля структур с помощью макроса GSEAL(). В случае необходимости предоставить новые методы доступа к этим полям. Также должны быть скрыты поля-указатели "priv" на структуры, содержащие закрытые данные. Эти действия уже практически полностью проведены в репозитории git://git.imendio.com/projects/gtk+.git
  • Реализовать закрытые члены класса, что включает изменения в коде GType.
  • Объявить как deprecated публичные данные класса с помощью макроса GSEAL().
  • Поскольку не останется простого способа для доступа к полям класса, а использование g_object_[sg]et() утомительно, необходимо ввести новые методы доступа, вроде g_object_get_int(), *double(), *string() и т.д.
  • Существует множество макросов, таких как GTK_WIDGET_GET_FLAGS(), которые всегда были причиной многочисленных проблем (см. bug #69872). Необходимо реализовать нормальные методы доступа (в виде функций) и избавиться от этих макросов.
  • GtkStyle, без сомнений, самый сложный тип, нуждающийся в скрытии публичных полей, и до релиза должно быть проведено множество исследований.
  • Избавиться от всего кода, объявленного deprecated в 2.x. Это подразумевает все соответствующие виджеты и функции.
  • Удалить все поля структур из публичного API. Есть два способа достичь этого:
    a) переместить все структуры в закрытые заголовки;
    b) переместить структуры в C-файл реализации, но тогда всей библиотеке придётся использовать соответствующие методы доступа.
    Эти варианты ещё обсуждаются.
  • Отключить deprecated-код по умолчанию во флагах компиляции.
Таким образом, версия 3.0 будет готова к релизу. Все приложения, которые собираются для ветки 2.x с макросом GSEAL() и не используют deprecated-кода, будут без проблем собираться для ветки 3.x. Наверное, таким образом разработчики пытаются избежать кошмара миграции, который можно видеть на примере библиотеки Qt.

>>> Подробности

★★★★

Проверено: JB ()
Ответ на: комментарий от Absurd

> Стандарт запрещает перемещать не-POD объекты другим способом кроме как через placement new

Ты что, собирался использовать системные (какие?) функции для перемещения объектов? O_O

> Речь о Win16

То есть, твою фразу "предполагается что компьютер у нас 32-битный с виртуальной памятью" на самом деле надо читать как "Си++ не работает на Win16"? Но даже в таком виде она лжива.

> Для того чтобы в примерах и с аргументами объяснять людям какой это быдляческий язык.

Ты _ничего_ не можешь объяснить. Ненавидишь сильно, это да.

>> Признаешь, что они не являются виной Си++, или отмажешься, как всегда?

> Дело в том что в С++ совершенно необязательно надо было поддерживать триграфы

Дело в том, что Си++ содержит _весь_ Си89 как подмножество. В том числе - триграфы.

> но совершенно обязательно было сделать поддержку сети и нормальных терминалов которые поддерживают curses.

И при этом у тебя нет никаких претензий к Си, который этого не сделал? Зашибись логика.

tailgunner ★★★★★
()
Ответ на: комментарий от Nihilist

> если ты такой умный, объясни, как пайпы решают задачу совмещения языков?

Так и решают. За подробностями в гугл.

> Если бы с трубами было всё так просто, Trolltech разорились бы, потому что по трубе GPL не передаётся

Любой интегрированный велосипед развалился б.

gaa ★★
()
Ответ на: комментарий от Absurd

> буду. Для того чтобы в примерах и с аргументами объяснять людям какой это быдляческий язык.

пок вместо аргументов от тебя только бредовые фантазии, фразы вроде "быдляческий язык" ( какой аргумент! против такого и возразить нечего ;) ) и полное неумение проектировать структуру программы

lester ★★★★
()
Ответ на: комментарий от tailgunner

>> Стандарт запрещает перемещать не-POD объекты другим способом кроме как через placement new

>Ты что, собирался использовать системные (какие?) функции для перемещения объектов? O_O

Не собрался, так как Win16 RIP. Но главное принцип: C++ требует чтобы объект оставался в том месте где его сконструировали всегда. Это требование способны выполнить только системы с виртуальной памятью.

>> Речь о Win16

>То есть, твою фразу "предполагается что компьютер у нас 32-битный с виртуальной памятью" на самом деле надо читать как "Си++ не работает на Win16"?

А какие есть еще 16-битовые ОС? В ДОС тоже чтобы достучаться до того что лежит выше 1МБ надо использовать himem.sys который перемещает чанки памяти в EXT память и обратно. Конструкторы копирования himem.sys почему-то не вызывает.

>> Для того чтобы в примерах и с аргументами объяснять людям какой это быдляческий язык.

>Ты _ничего_ не можешь объяснить. Ненавидишь сильно, это да.

Нормально все объясняю. Твоя плюсофилия в свете озвученных аргументов в этом треде мне кажется необъяснимой, это да. Даже Александреску никакого фана к С++ не имеет :"Мне надоело объяснять твердолобым баранам в ACCU и С++.moderated что уборка мусора это один из краеугольных каменей безопасного программирования наряду с type safety".

>>> Признаешь, что они не являются виной Си++, или отмажешься, как всегда?

>> Дело в том что в С++ совершенно необязательно надо было поддерживать триграфы

>Дело в том, что Си++ содержит _весь_ Си89 как подмножество. В том числе - триграфы.

Совместимость со всяким говном мамонтов, где нет curses и сети - это вредная совместимость. Как и совместимость с триграфами.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Но главное принцип: C++ требует чтобы объект оставался в том месте где его сконструировали всегда. Это требование способны выполнить только системы с виртуальной памятью.

Только ли цпп? Любой язык без "автоматического менеджера памяти".

> А какие есть еще 16-битовые ОС? В ДОС тоже чтобы достучаться до того что лежит выше 1МБ надо использовать himem.sys который перемещает чанки памяти в EXT память и обратно. Конструкторы копирования himem.sys почему-то не вызывает.

Мне достать с полки дистриб борланд ц 3.1, в котором есть пара программок на цпп под win16?

> Совместимость со всяким говном мамонтов, где нет curses и сети - это вредная совместимость. Как и совместимость с триграфами.

Наверно, ещё плохо, что в стандарте c++ нет опенГЛ и библиотеки рисования формочек. А также стандартизированного интерфейса для доступа к дазам банных и набора комнонентов для веб-программирования. так?

gaa ★★
()
Ответ на: комментарий от Absurd

> главное принцип: C++ требует чтобы объект оставался в том месте где его сконструировали всегда. Это требование способны выполнить только системы с виртуальной памятью.

Причем именно с 32-разрядным адресом. Если 64 - то всё, капец.

> Нормально все объясняю

Это тебе кажется.

> Даже Александреску никакого фана к С++ не имеет

Не надо путать "никакого фана" и "бредовые претензии".

>> Дело в том, что Си++ содержит _весь_ Си89 как подмножество. В том числе - триграфы.

> Совместимость со всяким говном мамонтов

Совместимость со стандартом.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> главное принцип: C++ требует чтобы объект оставался в том месте где его сконструировали всегда. Это требование способны выполнить только системы с виртуальной памятью.

> Причем именно с 32-разрядным адресом. Если 64 - то всё, капец.

Блиаааааа! То-то я думаю, что это у меня программа на c++ не работает :)

gaa ★★
()
Ответ на: комментарий от Absurd

>Нет буду. Для того чтобы в примерах и с аргументами объяснять людям какой это быдляческий язык.

Я с нетерпением жду, когда же ты наконец начнёшь это делать, вместо того, чтобы пытаться выдавать за "примеры и аргументы" своё собственное неумение пользоваться выбранным инструментом и отсутствие базовых знаний в области ООП и ООД.

MYMUR ★★★★
()
Ответ на: комментарий от MYMUR

>> Зашибись логика.

> Где? ГДЕ?? ГДЕ ЛОГИКА??? ПОКАЖИ!!!!

Извиняюсь за каламбур, но это логика абсурда %)

gaa ★★
()
Ответ на: комментарий от Absurd

>Совместимость со всяким говном мамонтов, где нет curses и сети - это вредная совместимость. Как и совместимость с триграфами.

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

"Чапаев был совсем не такой, какой он был на самом деле. А был он гораздо красивее!" ©

Да, кстати, как насчёт замечания tailgunner-а о том, что Це "кагбэ" тоже тянет "совместимость со всяким говном мамонтов, где нет curses и сети"? Или в случае Це все аргументы "против" магическим образом теряют свою обоснованность и применимость?

MYMUR ★★★★
()
Ответ на: комментарий от gaa

>> Но главное принцип: C++ требует чтобы объект оставался в том месте где его сконструировали всегда. Это требование способны выполнить только системы с виртуальной памятью.

>Только ли цпп? Любой язык без "автоматического менеджера памяти".

В Си структуру можно подвинуть с помощью memcpy.

>> А какие есть еще 16-битовые ОС? В ДОС тоже чтобы достучаться до того что лежит выше 1МБ надо использовать himem.sys который перемещает чанки памяти в EXT память и обратно. Конструкторы копирования himem.sys почему-то не вызывает.

>Мне достать с полки дистриб борланд ц 3.1, в котором есть пара программок на цпп под win16?

А он поддерживает стандарт Си++ ? С экзепшенами, RTTI, namespases + Koenig rules, STL, Template partial specializations? Я говорил что [читай внимательно] "*Стандарт С++* неявно подразумевает что у нас минимум 32-битовая машина с поддержкой виртуальной памяти. При этом он считает что у нас нету монитора, клавиатуры и сети"

>> Совместимость со всяким говном мамонтов, где нет curses и сети - это вредная совместимость. Как и совместимость с триграфами.

>Наверно, ещё плохо, что в стандарте c++ нет опенГЛ

Зачем ОпенГЛ портить быдлоплюсами?

>библиотеки рисования формочек

В Жабе осилили написание Свинга. И если свинговое приложение запускается при отсутствии Иксов, оно напишет ошибку и завершит работу.

>А также стандартизированного интерфейса для доступа к дазам банных

А почему нет? Базы данных появились до плюсов.

Absurd ★★★
()
Ответ на: комментарий от tailgunner

>> главное принцип: C++ требует чтобы объект оставался в том месте где его сконструировали всегда. Это требование способны выполнить только системы с виртуальной памятью.

>Причем именно с 32-разрядным адресом. Если 64 - то всё, капец.

Начались придирания ко всякой х^W. Я хотел поправить постинг для "минимум 32-битовая система", но думал что до этого не дойдет, т.к 64>32 и все это понимают. Но я недооценивал плософилов.

>>> Дело в том, что Си++ содержит _весь_ Си89 как подмножество. В том числе - триграфы.

>> Совместимость со всяким говном мамонтов

>Совместимость со стандартом.

С говном мамонтов. Даже в ДОС был ANSI.SYS, а Борланд к моменту стандартизации несколько лет имела TurboVision. BTW Си++ не имеет С89 как подмножество. Конструкция int *pi = malloc(sizeof(int) * some_length) прокатит в С89, но не прокатит в С++. Поскольку ты как типичный плюсофил начнешь придираться к разной х^W, я скажу сразу: я не считаю что это плохо.

Absurd ★★★
()
Ответ на: комментарий от MYMUR

>Я с нетерпением жду, когда же ты наконец начнёшь это делать, вместо того, чтобы пытаться выдавать за "примеры и аргументы" своё собственное неумение пользоваться выбранным инструментом и отсутствие базовых знаний в области ООП и ООД.

Типичное плюсофильское обвинение в ниасиливании. Слив засчитан.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> В Си структуру можно подвинуть с помощью memcpy.

а в с++ нельзя? о_О

> При этом он считает что у нас нету монитора, клавиатуры и сети

каким боком ЯЗЫК относится к работе с сетью???

> Зачем ОпенГЛ портить быдлоплюсами?

расскажи об этом создателям q3radiant ;)

> В Жабе осилили написание Свинга.

В с++ осилили написание qt, что лучше думаю обьяснять не стоит

> А почему нет? Базы данных появились до плюсов.

и ты в начале 80-х мог написать интерфейсы к MySql, Postgre, ODBC, DAO и т.п.???

lester ★★★★
()
Ответ на: комментарий от lester

> и ты в начале 80-х мог написать интерфейсы к MySql, Postgre, ODBC, DAO и т.п.???

Я уверен, он - мог

mv ★★★★★
()
Ответ на: комментарий от Absurd

> int *pi = malloc(sizeof(int) * some_length)

да шо ви таки говорите...
приведение типа добавить надо, а так все прекрасно скомпилится

lester ★★★★
()
Ответ на: комментарий от lester

>приведение типа добавить надо, а так все прекрасно скомпилится

А в Си скомпилится и без.

Absurd ★★★
()
Ответ на: комментарий от lester

>> В Си структуру можно подвинуть с помощью memcpy.

>а в с++ нельзя? о_О

Сущности С++ - нельзя. Структуры Си в С++ называются "Plain Old Data", т.е POD, их можно.

>> При этом он считает что у нас нету монитора, клавиатуры и сети

>каким боком ЯЗЫК относится к работе с сетью???

А каким боком ЯЗЫК относится к работе с файлами на диске? Классы для работы с файлами на диске в С++ есть. Немикроядерно как-то.

>> Зачем ОпенГЛ портить быдлоплюсами?

>расскажи об этом создателям q3radiant ;)

Студенческая забава - написание кода который ничего не делает. В данном случае - врапперов к самодостаточному ОпенГЛ.

>> В Жабе осилили написание Свинга.

>В с++ осилили написание qt, что лучше думаю обьяснять не стоит

Истории успеха типа "У нас весь бизнес-софт написан на Qt, поэтому миграция на Линукс не составила труда" есть? Много? Или все-таки "Qt" надо заменить на "Java"?

>> А почему нет? Базы данных появились до плюсов.

>и ты в начале 80-х мог написать интерфейсы к MySql, Postgre, ODBC, DAO и т.п.???

Ты знаешь, я бы в начале 80-х и STL написать бы не смог.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> Наверно, ещё плохо, что в стандарте c++ нет опенГЛ

> Зачем ОпенГЛ портить быдлоплюсами?

Ты по сути ответь, а не разбивай на несколько подстрок.

>> библиотеки рисования формочек

> В Жабе осилили написание Свинга.

И? Это есть в стандарте? или это лишняя сучность, которую ты туда добавлять не намерен?

> И если свинговое приложение запускается при отсутствии Иксов, оно напишет ошибку и завершит работу.

Ходят слухи, что так делает любое приложение для иксов.

gaa ★★
()
Ответ на: комментарий от Absurd

>>> В Си структуру можно подвинуть с помощью memcpy.

>> а в с++ нельзя? о_О

> Сущности С++ - нельзя. Структуры Си в С++ называются "Plain Old Data", т.е POD, их можно.

А все указатели на структуру Александр Сергеевич двигать будет?

gaa ★★
()
Ответ на: комментарий от Absurd

> Сущности С++ - нельзя. Структуры Си в С++ называются "Plain Old Data", т.е POD, их можно

ч.т.д.

> А каким боком ЯЗЫК относится к работе с файлами на диске?

все это лежит в libstdc++, в отдельной БИБЛИОТЕКЕ, компилятор про "работу с файлами" узнает только после включения хедера

> Студенческая забава - написание кода который ничего не делает. В данном случае - врапперов к самодостаточному ОпенГЛ.

как бы советую сначала почитать, что это

> Истории успеха типа "У нас весь бизнес-софт написан на Qt, поэтому миграция на Линукс не составила труда" есть? Много? Или все-таки "Qt" надо заменить на "Java"?

так бы и сказали, что вкалываете пишучи быдло-бизнес-софт, искренне сочуствую

> Ты знаешь, я бы в начале 80-х и STL написать бы не смог.

а сейчас типа сможешь? ;)

lester ★★★★
()
Ответ на: комментарий от Absurd

>Типичное плюсофильское обвинение в ниасиливании. Слив засчитан.

Ты лучше бы свои "сливы" посчитал, да выводы сделал --- глядишь, поумнел бы. Я тебе на конкретных примерах в нескольких местах показал, что плюсы ты как следует не знаешь и в знаниии теории ООП и ООД у тебя громадные пробелы.

Но тебе как с гуся горох и об стену вода.... =\

MYMUR ★★★★
()
Ответ на: комментарий от gaa

>>>> В Си структуру можно подвинуть с помощью memcpy.

>>> а в с++ нельзя? о_О

>> Сущности С++ - нельзя. Структуры Си в С++ называются "Plain Old Data", т.е POD, их можно.

>А все указатели на структуру Александр Сергеевич двигать будет?

Поумнее родить ничего не смог? У тебя вообще все кому не попадя обмениваются большой вермишелью из указателей?

Absurd ★★★
()
Ответ на: комментарий от MYMUR

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

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

Absurd ★★★
()
Ответ на: комментарий от lester

>> А каким боком ЯЗЫК относится к работе с файлами на диске?

>все это лежит в libstdc++, в отдельной БИБЛИОТЕКЕ, компилятор про "работу с файлами" узнает только после включения хедера

А почему про "Работу с TCP/IP" он ничего не узнает после включения стандартного хедера?

>> Ты знаешь, я бы в начале 80-х и STL написать бы не смог.

>а сейчас типа сможешь? ;)

Виляния. Разговор шел о том что библиотеку абстракций для работы с БД неплохо было написать к моменту принятия Стандарта, и включить в оный Стандарт. Ты написал что в начале 80-х это было типа тяжело. Я ответил что и STL в начале 80-х это тоже было бы тяжело. (Хотя STL в Стандарте есть - прим.). Давай все же продолжать эту интересную канву, а не обсуждать мою способность написать STL в данный момент времени.

>> Истории успеха типа "У нас весь бизнес-софт написан на Qt, поэтому миграция на Линукс не составила труда" есть? Много? Или все-таки "Qt" надо заменить на "Java"?

>так бы и сказали, что вкалываете пишучи быдло-бизнес-софт, искренне сочуствую

Превед сотрудникам CERN'а.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> А все указатели на структуру Александр Сергеевич двигать будет?

> Поумнее родить ничего не смог? У тебя вообще все кому не попадя обмениваются большой вермишелью из указателей?

Зачем рожать что-то умнее, если даже на тривиальном примере твой метод даёт охерительную осечку? Ни разу не встречал, чтоб на одну область памяти указывало более одного указателя? :о) Или не видел, чтоб на одну строку в разные места указатели показывали? Валяй, двигай сколько влезет!

gaa ★★
()
Ответ на: комментарий от Absurd

> А почему про "Работу с TCP/IP" он ничего не узнает после включения стандартного хедера?

А есть что-то более удобное чем bind/listen/connect ?

gaa ★★
()
Ответ на: комментарий от Absurd

> А почему про "Работу с TCP/IP" он ничего не узнает после включения стандартного хедера?

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

> Виляния

обычное чувство юмора ;)

> Превед сотрудникам CERN'а.

присоединяюсь, привет вам, мужики! :)

lester ★★★★
()
Ответ на: комментарий от mv

>> А есть что-то более удобное чем bind/listen/connect ?

> asio. Ныне уже в boost

Глаза разбегаются от количества сущностей... Надо попробовать в деле, может и удобнее.

gaa ★★
()
Ответ на: комментарий от Absurd

>Не помню никакой конкретики от плюсофилов.

У тебя очень избирательная память, это я заметил.

>Давай приведи ссылки, я отвечу еще раз.

Ты и вправду полагаешь, что я сейчас кинусь перелопачивать полуторатысячный тред только ради того, чтобы поизображать попугая и потыкать тебя твоими перлами ещё раз?

P.S.: дай-ка я угадаю твой ответ.... "слив защитан"? Угадал? %)

MYMUR ★★★★
()
Ответ на: комментарий от gaa

>Ни разу не встречал, чтоб на одну область памяти указывало более одного указателя? :о)

А не приходило ли тебе в голову что указатель или даже "безопасная" ссылка на элемент std::vector'a тоже становится невалидной после очередной переаллокации? std::vector кстати перемещает объекты неиллюзорно безопасным и быстрым способом с помощью конструктора копирования.

Absurd ★★★
()
Ответ на: комментарий от MYMUR

>Ты и вправду полагаешь, что я сейчас кинусь перелопачивать полуторатысячный тред только ради того, чтобы поизображать попугая и потыкать тебя твоими перлами ещё раз?

Ниасилил гугол? Или память слишком избирательная и ключевые фразы вспомнить не можешь?

Absurd ★★★
()
Ответ на: комментарий от Absurd

Тыкни кнопачку "показать все комментарии" и погрепай по моему нику сообщения, адресованные тебе. При дОлжной отрешённости от непосильным трудом нажитой плюсофобии и от личностей автора и адресата сообщений, ты найдёшь среди них то, чего так страстно желаешь. Если желаешь, конечно.

MYMUR ★★★★
()
Ответ на: комментарий от MYMUR

>Тыкни кнопачку "показать все комментарии" и погрепай по моему нику сообщения, адресованные тебе.

Никакой конкретики не нашел. Одни отвлеченные аналогии об нубах за рулем и штурвалом, женские способы вести спор (особенно эскалации и гиперболы) и рекоммендации С++-ных костылей о которых я и так знаю. Приведи аргумент который тебе самому нравится.

Absurd ★★★
()
Ответ на: комментарий от Absurd

Пля.... я же скзал "найдёшь среди них", а не "каждое из них является".

>Приведи аргумент который тебе самому нравится.

Мне нравятся все, включая навигацию в окрестностях Большого Барьерного Рифа. А тебе разве нет? :)

А истина как раз среди того (опять же, СРЕДИ ТОГО, а не "всё то"), что ты называешь "С++-ными костылями", хотя изначально оно идёт из хренового проектирования или ещё чего похуже. Очень показателен пример про то, как у тебя в _интерфейсе_ вдруг откуда-то взялись приватные члены, изменение которых вдруг приводит к "изменению интерфейса". Налицо явное непонимание того, что такое интерфейс, зачем он нужен и чем он отличается от абстрактного класса.

А твоя феерическая интерпретация "китов" ООП --- так это вообще просто праздник какой-то! %)))

MYMUR ★★★★
()
Ответ на: комментарий от Absurd

Исключительно приятно было прочитать все 1500+ сообщений.

Я считаю, что филосовский ка^W^W язык общего назначения, который будет нравится ВСЕМ, действительно может быть создан. Потому все претензии к языкам, в том числе недостаточно обоснованные (как _иногда_ бывает у Абсурда) мне интересны.

ВОПРОС КО ВСЕМ:

кроме как здесь, где еще вменяемые прогеры критически высказываются о плюсах? (английский тоже катит)

[я не анонимус, я www_linux_org_ru]

anonymous
()
Ответ на: комментарий от anonymous

> Я считаю, что филосовский ка^W^W язык общего назначения, который будет нравится ВСЕМ, действительно может быть создан.

Не может. т.к. фанатики-линуксоиды, не осилившие юникс-вей сразу же окрестят его комбайном.

> кроме как здесь, где еще вменяемые прогеры критически высказываются о плюсах? (английский тоже катит)

Статьи на www.digitalmars.com/d ;)

naryl ★★★★★
()
Ответ на: комментарий от naryl

>> кроме как здесь, где еще вменяемые прогеры критически высказываются о плюсах? (английский тоже катит)

> Статьи на www.digitalmars.com/d ;)

За ссылку спасибо, но d тоже не катит на роль Хорошего Языка Общего Назначения.

anonymous
()
Ответ на: комментарий от anonymous

> где еще вменяемые прогеры критически высказываются о плюсах? (английский тоже катит)

http://www.adaic.com/whyada/ada-vs-c/cppcv3.pdf (общая критика)

http://savetrace.com/reblog/index.php?n=ReCode.BlogList (в некоторых постах)

http://www.cs.kuleuven.be/~dirk/quotes.html#PL (в том числе про C++)

Есть ещё C++ FQA Lite, но это 11/11 и не всё правда

Nihilist
()
Ответ на: комментарий от Nihilist

где еще вменяемые прогеры критически высказываются о плюсах? (английский катит)

Обязательно прочту. Но интересен именно ресурс, типа форума, весь посвященный критике, желательно не только плюсов.

anonymous
()

> нтересен именно ресурс, типа форума, весь посвященный критике, желательно не только плюсов

http://ru.wikipedia.org/wiki/Slashdot

> У любого материала есть обсуждения, которые часто вырастают до огромных размеров, превращаясь во флейм. Слэшдот работает на собственной CMS (наборе скриптов под названием Slash), специально модифицированной для поощрения содержательных комментариев и борьбы с троллингом.

Nihilist
()
Ответ на: комментарий от Absurd

>> Ни разу не встречал, чтоб на одну область памяти указывало более одного указателя? :о)

> А не приходило ли тебе в голову что указатель или даже "безопасная" ссылка на элемент std::vector'a тоже становится невалидной после очередной переаллокации? std::vector кстати перемещает объекты неиллюзорно безопасным и быстрым способом с помощью конструктора копирования.

Я полагаю что это обвинение в неосиливании итераторов? :о)

И всё же: почемуй-то memcpy позволяет двигать сишные структуры безо всяких проблем?

И второе уточнение: так какие же библиотеки должны быть в стандарте языка c++? ncurses, бд, сеть ты уже назвал. Чего ещё не хватает: гуйков, ipc, xml-парсеров, blas/lapack?

gaa ★★
()
Ответ на: комментарий от gaa

>> А не приходило ли тебе в голову что указатель или даже "безопасная" ссылка на элемент std::vector'a тоже становится невалидной после очередной переаллокации? std::vector кстати перемещает объекты неиллюзорно безопасным и быстрым способом с помощью конструктора копирования.

>Я полагаю что это обвинение в неосиливании итераторов? :о)

Итераторы std::vector после модификации вектора считаются невалидными, и пользоваться ими нельзя. Ну и ?

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Итераторы std::vector после модификации вектора считаются невалидными, и пользоваться ими нельзя. Ну и ?

Мне тут маны подсказывают что не все и не всегда.

gaa ★★
()
Ответ на: комментарий от gaa

>> Итераторы std::vector после модификации вектора считаются невалидными, и пользоваться ими нельзя. Ну и ?

>Мне тут маны подсказывают что не все и не всегда.

После очередной реаллокации - точно.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>>> Итераторы std::vector после модификации вектора считаются невалидными, и пользоваться ими нельзя. Ну и ?

>> Мне тут маны подсказывают что не все и не всегда.

> После очередной реаллокации - точно.

reserve() никто не отменял. А вообще я там задавал ещё пару вопросов, удосужься ответить и на них.

gaa ★★
()
Ответ на: комментарий от gaa

>И всё же: почемуй-то memcpy позволяет двигать сишные структуры безо всяких проблем?

По стандарту объект перемещать с помощью memcpy/GlobalUnlock/whatever нельзя, а POD можно. Cможешь сразу, без подглядывания в литературу назвать конкретный признак, которая отделяет POD от не-POD?

>И второе уточнение: так какие же библиотеки должны быть в стандарте языка c++? ncurses, бд, сеть ты уже назвал.

Да этого хватит. Если бы Строуструп осилил написание хотя бы примитивных гуйков, то от многих концепций ему пришлось бы отказаться.

Absurd ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.