LINUX.ORG.RU

C++20 и 2D Graphics

 ,


0

9

Исходник: https://isocpp.org/files/img/wg21-timeline-2017-11.png

Оказывается, все проблемы C++ уже решены, и теперь можно приступать к самой важной части системного языка - 2D графике.

Вопрос: что за безумие происходит в комитете C++? Зачем системному языку, да и вообще любому языку, 2D графика в std? Тем более, по слухам, они собираются использовать убогий cairo.

Из подобных языков приходит в голову только tcl/tk и red.

★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от heaven__12

Ну, вообще, товарищ Xintrea не в обломе

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

Впрочем, использование Qt накладывает свои ограничения на способ мышления разработчиков. Вплоть до Qt головного мозга, который можно наблюдать у одного из участников этой темы (отмеченного как мегапрофессионала другим участником).

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

В чем не разбираюсь - тем не пользуюсь. Если у Xintrea проблемы с тем что ему коммитят непонятный код, то это решается введением кодстайла.

// Про приоритеты умножения-деления он описывает какую-то жесть, но без подробностей непонятно какую именно.

Ну и да, с каждым новым стандартом писать программы проще. Непонятно что-то про инкремент в цикле? Пиши range for, не ошибешься.

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

Кажется, про мегапрофессионализм никто не говорил. Я к тому, что знаний-то достаточно, чтобы вести проект. Списки инициализации появились в c++11. Да, передача аргументов по значению, конечно, косяк, но, благо Qt с его COW контейнерами позволяет ликвидировать расходы на копирование. Чё пристали-то к человеку? Хочет разобраться и использовать в будущем особенность, которую пока не изучил. Уверен, что и большая часть «мегапрофессионалов» не всегда ответит, когда будет UB, а когда не будет, пр использовании инкрементов.

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

Списки инициализации появились в c++11.

Под списками инициализации в данном случае подразумевались не initializer lists из C++11, а инициализация полей в конструкторе вот таким образом:

class demo {
  int a;
  float b;
  string c;
...
public:
  demo() : a(1), b(3.1415), c("hello") {...}
}
вместо вот такого совсем уж древнего:
demo::demo() {
  a = 1;
  b = 3.1415;
  c = "hello";
}
И рекомендации использовать такой стиль инициализации членов класса в конструкторе появились задолго до принятия C++98.

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

Производительность здесь лишь один из факторов, имхо, не самый главный. Более важно поведение при наличии исключений и порядок вызова деструкторов. Но, повторюсь, Qt налагает свои ограничения на стиль мышления и использования C++.

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

Когда я вижу проблемы в коде или в аргументации у человека, я об этом говорю прямо и могу аргументировать свою точку зрения. Вы же используете только проезды по личности и элементарно сливаетесь на попытках хоть как-то подтвердить свои высказывания. Что уже случалось на LOR-е неоднократно и имеет свежее подтверждение даже в данной теме.

Кроме выпадов в мой адрес что-то еще сказать можете?

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

Кроме выпадов в мой адрес что-то еще сказать можете?

Вот и я об этом же. Аргументация уровня: все вокруг дебилы - это уныло даже для лора.

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

Всё верно говоришь. И я согласен, что важно знать и про списки инициализации в конструкторах класса, и про способы передачи параметров, и про исключения, и про многое другое. Но при всём при этом, товарищ Xintrea не в обломе, я считаю. Благо, ограничения Qt позволяют не думать об исключениях и способах передачи параметров.

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

Но при всём при этом, товарищ Xintrea не в обломе, я считаю.

Да считать можно все, что угодно. Только вот фокусы с инкрементом и декрементом в C++, а так же о том, почему не следует писать a[i]=++i; или b=++ ++a в С/C++ разбирались многократно и повсеместно. Если мне не изменяет склероз об этом говорилось даже в первом издании «C++ Programming Language». Соответственно, когда человек начинает жаловаться на непонимание, то остается только сильно удивиться.

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

У вас бывают проблески адекватности, не спорю.

вот у тебя их точно не бывает, но хорошо что ты не паришься)

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

А давайте вы приведёте статистику появления говнокода в проектах с использованием Qt и без использования, чтобы так безапелляционно заявлять об ограничениях стиля мышления и т.д.?

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

А давайте вы приведёте статистику появления говнокода в проектах с использованием Qt и без использования, чтобы так безапелляционно заявлять об ограничениях стиля мышления и т.д.?

Давайте вы еще значение синуса будете вычислять всенародным голосованием.

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

А разве не ясно? Ему бомбит от того что вчерашние студни с Qt наперевес девальвируют гордое «Йа крестоносец», которым он так дорожит.

Хотя я бы согласился в формулировке, что если сразу начинать с Qt, то получается кошмар и полный Даннинг-Крюгер. Про это давно уже было: Qt4 - современная реинкарнация Delphi?

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

Я за двадцать лет до сих пор вменяемого описания префиксного и постфиксного даблплюса/минуса не нашел. А ты весь язык выучил? Наверно ты и с пяток проектов успел написать на выученном языке? Прям хочу ссылки увидеть.

ой как плохо быть вами, вы очень глупый

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

Давайте вы еще значение синуса будете вычислять всенародным голосованием.

вы что, сомневаетесь в голосовании?

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

У вас бывают проблески адекватности, не спорю.

Зачем ты споришь с глупыми людьми? Твой код - самый гениальный, из тех которые я видел. Мы, профессионалы, всегда сможем разглядеть друг друга на гитхабе, а что думают остальные нас волновать не должно. Собаки лают, караван идет!

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

Обычно на ЛОРе троллят тоньше, вам нужна калибровка.

я правда так думаю, но тебе не понять, ты не профи

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

Обычно на ЛОРе троллят тоньше, вам нужна калибровка.

вообще уровень программистов на ЛОРе это кончено ужас, кроме RazrFalcon и еще пары человек никого из профессионалов нет, одни новички

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

Мы, профессионалы, всегда сможем разглядеть друг друга на гитхабе

Можно ссылочку на твой гитхаб аккаунт? Я, к сожалению, не на столько профессионал, чтобы тебя там разглядеть.

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

Кстати, так сложилось, что я о Qt узнал раньше, чем о том как писать классы в c++. Его простота привлекла к изучению языка. Всякого рода нюансы потом уже пришли после более углублённого изучения. Да и по сей день ещё дофига осталось, что не плохо было бы изучить :)

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

Можно ссылочку на твой гитхаб аккаунт? Я, к сожалению, не на столько профессионал, чтобы тебя там разглядеть.

не можешь разглядеть - не профессионал

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

Ну вы поинтересуйтесь у того же RazrFalcon, способен ли он написать что-то более-менее серьезное на C++ без Qt. Может тогда станет лучше понятно о чем шла речь во фразе про «Qt головного мозга».

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

Можно ссылочку на твой гитхаб аккаунт? Я, к сожалению, не на столько профессионал, чтобы тебя там разглядеть.

не можешь разглядеть - не профессионал

Я ж не спорю. Ты ссылочку забыл указать.

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

Ладно, я (кажется) вашу позицию понял.

Встречаются два фотографа.

— Я теперь стоматолог.

— Почему?

— Бормашину купил.

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

Могу, но зачем? На C++ меня держит только Qt. Если последний не нужен - я напишу на Rust.

Лички тут нет, напишу на всех. Сейчас пишу крупный opensource-проект, который позже превратится в крайне доходный стартап, мне нужны профессионалы вроде тебя, а на первое время уже есть бюджет. Напиши свои контакты, договоримся: tdifferent@inbox.ru

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

Вы, блин, рассказать о своих проблемах с unique_ptr внятно не можете. Так что верить вам не приходится ну вот от слова совсем.

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

Вы так ничего и не поняли... Зачем мне вам что-либо объяснять, если вы всё равно перевернёте всё с ног на голову и сделает всё, чтобы выставить себя «правым». Знаем, проходили.

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

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

В общем, шланговать бесполезно. Как только речь заходит о C++ вообще, а не о подмножестве, которое вы привыкли использовать в Qt, вы сливаетесь сразу и без шансов. Многократно проверено уже.

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

Когда вы уже поженитесь? Весь dev засрали этой сантабарбарой

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

Не прошло и дня, чтобы вы не оказались правы. Преклоняюсь пред вашим совершенством.

Как сторонний наблюдатель могу сказать что eao197 всегда оказывается прав в спорах с вами, но огромная корона величайшего гения программирования и гуру системных языков, не позволяет вам увидеть ваши пробелы в знаниях. Смотрится конечно комично, и я ни в коем случае не призываю вас останавливаться, но иногда вас становится так жалко, что прямо-таки хочется вас одернуть.

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

Начнем с того, что поддержки паники может просто не быть в рантайме (panic=abort).

Справедливо, но если пишем не либу, то решение принимаем сами. Так-то и в плюсах есть (нестандартный) способ «отключить» исключения.

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

В Расте у функций, в которых могут возникнуть исключительные ситуации, тип Result<T, E>, а не T.

Или я тебя не понял или мы о чём-то разном говорим. Если я вдруг решу в расте использовать панику как исключения, то никаких Result<T, E> не будет.

Исключения тупо удобнее. Это не значит, что они хороши.

Этого я не утверждал.

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

Видать ты во всём и всегда разбираешься...

Ну в языке, на котором пишу проект, я предпочёл бы разобраться получше.

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

В Расте у функций, в которых могут возникнуть исключительные ситуации, тип Result<T, E>, а не T.

Или я тебя не понял или мы о чём-то разном говорим. Если я вдруг решу в расте использовать панику как исключения, то никаких Result<T, E> не будет.

Если не задумываться об обработке паники и бросить ее — да, не будет. Какая от этого практическая польза?

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

vs

Вся «многословность» Си здесь исключительно в невозможности использовать сахар «вызов метода». При том именно в этом примере это чистый сахар, поскольку никаких иных задач не решает.

Достоинство это или недостаток — зависит от конкретных условий разработки ПО. Если надо «слабать по-быстрому», как в 99% случаев прикладного кода, то недостаток. А если это системные кишки, то достоинство. При таком подходе каждая строчка кода делает ровно то, что в ней написано и ни единым байтом больше. Код работает ровно так, как выглядит. Это очень важное свойство для языка системного программирования.

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

Rust версия работает идентично, но не выглядит как говно. И не надо рассказывать про мифическое «Код работает ровно так, как выглядит.». Код работает ровно так, как его написал автор. Язык тут не при чём.

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

«Говно» — это сильный аргумент. Для третьего класса начальной школы.

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

Вся «многословность» Си здесь исключительно в невозможности использовать сахар «вызов метода».

Что такое, в Си уже появился вывод типов?

А если это системные кишки, то достоинство.

Глупости. Мне доводилось писать системные кишки, и впечатления от Си такие же, как и в написании прикладного кода - устаревшее убогое говно.

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

Начнем с того, что поддержки паники может просто не быть в рантайме (panic=abort).

Справедливо, но если пишем не либу, то решение принимаем сами

Если мы пишем приложение, мы заложники либ. Если мы пишем всё свое - да, можно сделать исключения на паниках, но какой смысл? Хотя есть какая-то ирония в том, что в рантайме Rust всё равно есть большая часть сложностей, которые нужны Си++ для исключений.

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