@ProCxx

Страница 2328 из 2477
Аттрибутивно-ассоциативный ряд
06.09.2018
06:57:09
Доброе утро. Есть приложение которое создаёт объект в куче и отдает указатель в длл, где объект удается. Какие подводные камни могут быть? 11 стандарт, с-апи, posix платформы

Аттрибутивно-ассоциативный ряд
06.09.2018
07:07:32
Длл, статически слинкованная с системными либами, вследствие чего имеющая свою кучу
То есть если приложение и длл используют std_shared то куча будет одна, так?

Александр
06.09.2018
07:07:57
То есть если приложение и длл используют std_shared то куча будет одна, так?
Не вижу связи между использованием std::shared_ptr и линковкой

Google
Александр
06.09.2018
07:08:13
Чтобы всё было ок, нужно "вшивать" deleter в указатель

Egor
06.09.2018
07:08:14
Аттрибутивно-ассоциативный ряд
06.09.2018
07:08:29
Алексей
06.09.2018
07:37:12
Antony
06.09.2018
07:38:15
https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/fannkuchredux.html
Знакомый сайт. Там PHP всех уделывал по производительности в течении лет этак 3х.

Так что рекомендую переписать с C на PHP :)

Daniel
06.09.2018
07:40:51
Алексей
06.09.2018
07:41:49
Начал практиковаться в ц++11 и обнаружил, что несмотря на определение конструктора перемещения и применение std::move в std::map улетает копия инстанса. Что я пропустил?

Max
06.09.2018
07:42:11
Сомнительная авантюра
Да ладно, вон бенчмарки ж есть в интернетах)

Алексей
06.09.2018
07:44:17
Есть пример кода, где повторяется проблема?
Момент, дойду до компа - скину.

Google
/dev
06.09.2018
07:49:34
Ioann V
06.09.2018
08:12:42
Я забанил сразу за такое вот...
Блять. Пи$дец, днище. Зачем банить? На лицо, что человек запутался или чего то не знает. Почему взять и не объяснить ему в чем он не прав?

Matwey
06.09.2018
08:14:25
Идём далее - "Код на C прекрасно пишется без каких-либо тяжеловесных IDE, в обычном Sublime Text или Vim с ctags. Для сколь-либо серьезного кода на C++ без нормальной IDE жизнь быстро становится очень грустной, потому что автоматический вывод типов, шаблоны, и вот это все, и потому что ctags начинает забрасывать не туда, куда нужно. К счастью, IDE для C++ существуют. CLion, например, довольно неплох. Но не все программисты согласны платить за него деньги и попрощаться с 2 Гб оперативной памяти. К тому же, CLion не все и не всегда подсвечивает правильно, и если открыть в нем сразу два проекта, то даже довольно мощный компьютер начнет тормозить. Есть и другие IDE, но у них свои проблемы, например, привязка к Windows или отсутствие важных возможностей, таких, как вывод типов." Тут всё индивидуально. Тут есть много людей, что в виме сидят и валят кодяру. я их не понимаю, конечно. Но тот же Qt Creator я считаю очень лёгким. и его хватает для базовых вещей
Я в vim сижу и не жужжу

Сиие
06.09.2018
08:16:09
Блять. Пи$дец, днище. Зачем банить? На лицо, что человек запутался или чего то не знает. Почему взять и не объяснить ему в чем он не прав?
Неправ он в двух вещах, в том что собирает велосипед из неподходящих средств и в то что верит что за счёт этого он быстрее поедет

Ioann V
06.09.2018
08:17:08
Неправ он в двух вещах, в том что собирает велосипед из неподходящих средств и в то что верит что за счёт этого он быстрее поедет
Мне то зачем об этом говорить? Ему надо говорить и объяснить почему так, а не иначе. А это, больше на сходос паблика Мэда напоминает.

Igor
06.09.2018
08:18:29
Привет, ребята, извиняюсь сразу за вопрос, но как сложно сделать что-то типа MTA (плагин к GTA: SA) для Mount & Blade (кампания в мультиплеере)?
за МТА не уверен, уж слишком гладкая у неё синхронизация, а вот за SAMP могу рассказать такое: самп это по сути сильно продвинутый трейнер, который хакает твою игру, но не устанавливает 100500 жизней, а получает данные от сервера, создаёт персонажей в соответствии с информацией о других игроках, и неистово шлёт на сервер информацию о действиях твоего персонажа соответственно чтобы создать его подобие для другой игры, нужно как минимум чтобы 1) она поддерживала подобные механизмы скриптового управления персонажами 2) эти механизмы были доступны трейнер-процессу мультиплеера, после чего 3) распотрошить игру и преисполниться знаниями об этих механизмах, дабы можно было написать подобный трейнер

Ilia
06.09.2018
08:21:29
Человек скорее всего имеет ввиду ООП VS Функциональщина. Тут Си победит.
Как С может победить, если в нем нет ни функциональщины, ни OOP?

Antony
06.09.2018
08:21:51
Всё очень просто, sockets механизм разработаный linus'ом Torvalds'oм изначально для C, плюс C++ не даёт должной производительности из-за высокого уровня абстракции, что насчёт rust'a - в раздумиях про написания аналога на этом языке
Сокеты изобретены ещё до Линуса https://en.wikipedia.org/wiki/Berkeley_sockets Разрабатывались они не для С, а на C. Полученный интерфейс универсален, можно пользоваться на любых языках программирования, хоть на ассемблере, хоть на JS

Igor
06.09.2018
08:22:41
дурацкое автодополнение..

Igor
06.09.2018
08:23:28
Как С может победить, если в нем нет ни функциональщины, ни OOP?
какэто нет функциональщины? функции есть? указатели на функции есть? передавать их в другие функции можно? ну вот тебе и функциональщина /s

Ruslan
06.09.2018
08:25:09
Как С может победить, если в нем нет ни функциональщины, ни OOP?
Он не должен кого-то там побеждать. Есть ниша, которую он занимает. Точка.

Ну, пока занимает...

Ilia
06.09.2018
08:25:41
какэто нет функциональщины? функции есть? указатели на функции есть? передавать их в другие функции можно? ну вот тебе и функциональщина /s
Да, я знаю, что С формально -- функциональный язык, и что даже в CRT есть фукнции высших порядков. Но на этом всё удобство кончается.

Google
Igor
06.09.2018
08:25:54
это да)

/dev
06.09.2018
08:26:24
Он не должен кого-то там побеждать. Есть ниша, которую он занимает. Точка.
Ниша: поддержка легаси проектов в команде Линуса "неосилятора" Торвальдса

Agrailag
06.09.2018
08:27:33
@antoshkka, а какова вероятность, что примут вариант модулей от майков(как я понимаю, они за вариант без макросов) ? И что вообще влияет на выбор(лоббирование компаниями своих интересов, или чёт другое)?

Antony
06.09.2018
08:28:39
Всё очень просто, sockets механизм разработаный linus'ом Torvalds'oм изначально для C, плюс C++ не даёт должной производительности из-за высокого уровня абстракции, что насчёт rust'a - в раздумиях про написания аналога на этом языке
В основе дизайна языка C++ - zero cost abstraction. Все абстракции языка не добавляют никаких накладных расходов (за редким исключением, на которое сложно натолкнуться) Все новые фишки языка тщательно проверяются на соответствие этому принципу. При этом дело доходит до казалось бы абсурдных для других язуков программирования заморочкам. Одну из ключевых новинок языка мучают уже лет 5 из-за того, что там появляется дополнительная косвенность (разадресация указателя). При этом эта новинка в основном для асинхронных задач, тоесть там где цена разадресации указателя ничтожна по сравнению с рядом идущим системным вызовом + синхронизации

Ниша: поддержка легаси проектов в команде Линуса "неосилятора" Торвальдса
Там есть пара хороших аргументов у Линуса, в ползу не использования C++. Постепенно эти баги в языке чинятся

Antony
06.09.2018
08:31:54
@antoshkka, а какова вероятность, что примут вариант модулей от майков(как я понимаю, они за вариант без макросов) ? И что вообще влияет на выбор(лоббирование компаниями своих интересов, или чёт другое)?
от 0 до 100% Не берусь предсказывать, что выйдет в итоге. Посмотрим на результаты промежуточной встречи по модулям после 20+ сентября. Уже скоро, осталось недолго ждать :)

Ilia
06.09.2018
08:32:39
По крайней мере, это OpenSource сайт, и каждый может предложить свой варриант по производительнее
Я посмотрел твои бенчмарки. И вот, эти разницы в сотых секунды ты полагаешь за катастрофическую разницу в производительности ? Если бы ХОТЯ БЫ в несколько раз, было бы о чём говорить. А это входит в рамки погрешностей измерения.

Ilia
06.09.2018
08:37:26
? у меня есть ощущения что местами плюсы даже быстрее выйдут
Блин, основной способ повышения производительности С -кода -- инлайнинг функций. Я уж не помню, как там С умеет автоматом иннайнить, может и научился уже давно, но С++ инлайнить умеет очень хорошо. Поэтому да, С++ должен либо выигрывать, либо не проигрывать.

Ilia
06.09.2018
08:39:43
по паре пунктов только согласен
Ага, что взять с автора, который пишет такое: "Трудно ругать язык, на котором написаны Chromium, Skype" ...

Ага, что взять с автора, который пишет такое: "Трудно ругать язык, на котором написаны Chromium, Skype" ...
А потом такое: То есть, тот C++, на котором вы пишите, почти как на Java, в котором никогда не встречаются обычные указатели, и вот это все. Если вам очень важна скорость, то писать на таком C++ вы не сможете Да это просо КГАМ, и всё.

Antony
06.09.2018
08:45:00
Это вы осознаёте. Но для множетва людей, не знакомых с темой (как и сам автор) это будет звучать правдоподобно и люди будут в это верить и уверенно повторять.

Ilia
06.09.2018
08:48:18
Три топ это QtCreator, Visual Studio и CLion.

Alexander
06.09.2018
08:50:14
Достаточно стремный способ(вспомним лекцию @antoshkka )
Я как человек разобравший схему работы clang инлайнера могу сказать, что в особо критичных местах можно и написать инлайн.

Ilia
06.09.2018
08:50:28
Ну где, где этот Павел? МЫ ЕГО РАСКАТАЛИ!

Alexander
06.09.2018
08:50:32
Критичные места определяются профилированием

Igor
06.09.2018
08:50:41
ты же его забанил

Ilia
06.09.2018
08:50:49
Нет, не банил

Google
Igor
06.09.2018
08:51:09
)

на тебя даже Иоанн на это сагрился, а ты и не заметил)

Matwey
06.09.2018
08:51:41
Ilia
06.09.2018
08:53:50
нет банил
Я не банил. Но в мемберах его нет. Либо сам ушёл, либо ушли.

Igor
06.09.2018
08:56:16
но это же не делает плюсы г-ном?

Kitsu
06.09.2018
08:57:04
очевидно, что на любом яп можно написать плохой код, так что нет

Но в вопросах сложности автор прав, без хорошего опыта плюсов их очень сложно понимать

Matwey
06.09.2018
09:04:06
Да, в C++ для этого так же можно использовать static или анонимные namespace
Другое дело в ядре может быть наоборот важен размер бинарика на каких-то встраиваемых системах. Так что пусть сами разбираются, ключами компилятора.

Ну хочу думать, мое дело писать static

Antony
06.09.2018
09:05:34
Там когда Линус успокаивается, он пишет конкретные причины, что ему в C++ не нравится: http://harmful.cat-v.org/software/c++/linus - the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels. - any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel. - you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++.

Kirill
06.09.2018
09:06:41
Зачем _вот такие_ подчёркивания?

Matwey
06.09.2018
09:06:56
Ildar
06.09.2018
09:08:55
Я по ссылке из статьи сходил в репу glm и у меня вопрос возник: с какой целью используется конструкция вида template <...> template<...> в этом куске кода и что она делает? template<typename T, qualifier Q> template<qualifier P> GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<4, 4, T, Q>::mat(mat<4, 4, T, P> const& m)

Antony
06.09.2018
09:10:10
С исключениями он прав, над этим думают и пока не знают что делать С подкапотными аллокациями (в случае исключений, сопрограм, и внезапных мест в стандартной библиотеке) он тоже отчасти прав. Но в случае со стандартной библиотекой такое же безобразие есть и в С - можно сделать функцию, которая внезапно что-то аллоцирует. Тоесть тут скорее проблема обучения, чем нерешаемая проблема библиотеки. ООП в плюсах он погорячился отчасти. На плючах выразительнее и короче. Но ряд вещей в ядре требуют 1 инстанс класса наследника. В этом случае указатели на функции внутри класса позволят работать чуть быстрее, чем виртуальные функции C++ (за счёт -1 косвенности)

Google

Страница 2328 из 2477