• Можно ли вызвать деструктор void*?

    @MarkusD Куратор тега C++
    Павел Соколов,
    Он не сможет удалить класс, если ему дать void.

    Я сейчас не совсем понимаю, ты хочешь мне это объяснить или ты это спрашиваешь?

    А вот сделать free - да, но это все равно будет утечкой памяти

    Это будет не утечка памяти, а утечка ресурса. Это совсем разные эффекты с совсем разными последствиями.

    Еще я не понимаю цели двух странных цитат в начале твоего комментария, одна из которых явно стала жертвой автоматического переводчика.

    Тебе нужно помочь разобраться с умными указателями и с тем, почему я предложил тебе обратить на них внимание? Или ты хотел выразить свое мнение по поводу умных указателей?
  • Можно ли вызвать деструктор void*?

    @MarkusD Куратор тега C++
    Павел Соколов, зачем тебе все эти сложности, когда есть умные указатели?
    Посмотри как работает std::shared_ptr<void>[?]. Если еще будешь использовать std::make_shared[?], то вообще обойдешься одним выделением памяти.
    Тебе на самом деле незачем работать с new/delete.
    Наружу умный указатель тебе незачем отдавать, просто держи его в векторе чтобы он правильно удалил подконтрольный объект в нужный тебе момент.
  • Как исправить ошибку в коде из-за сравнения с кириллицей/русским алфавитом?

    @MarkusD Куратор тега C++
    Раз С++20, то, наверное, можно и std::u8string[?] посоветовать?
  • Как получать и обрабатывать координаты мыши в окне OpenGL?

    @MarkusD Куратор тега C++
    NimuraF, ну хорошо. Я сейчас просто накидаю тебе информации. Если у тебя с ней не свяжется сразу, то я сделаю прям развернутый ответ снова, когда найду для этого свободное время. Со временем у меня всегда сложно.

    Матрица трансформации - это тензор для перехода из одного пространства в другое.
    Например, у тебя может быть сцена, в которой у каждого узла может быть своя матрица трансформации. При этом, эта матрица у узла всегда считается в локальных координатах родительского узла. И только корневой узел сцены позиционируется в глобальных координатах сцены.
    Как в этой ситуации узнать глобальные координаты сцены для какого-то произвольного дочернего узла этой сцены?
    Нужно последовательно перейти из локального пространства этого дочернего узла в пространство родительского, потом следующего родительского и так далее до пространства, в котором находится корневой узел. За каждый переход отвечает тензор перехода узла сцены. А если перемножить эти тензоры между собой, получится один ровный тензор перехода из локального пространства дочернего узла в глобальное пространство сцены.
    Это - первый ключ. SRT-матрица объекта сцены - это тензор перехода от локальных координат этого узла к локальным координатам родительского узла.

    Инверсия матрицы. Обратная матрица обратной не просто так называется. Если матрица является синим порталом для перехода из одного пространства в другое, то ее обратная матрица является уже рыжим порталом.
    У тебя есть матрица вида, матрица проекции, характеристики вьюпорта и оконные координаты мышки.
    Какую матрицу ты используешь чтобы геометрия оказалась именно на экране? А ведь именно эта матрица отвечает за переход геометрии из глобального пространства сцены в локальное пространство фрустума камеры.
    И дальше твоя геометрия еще отсекается по вьюпорту.
    Это - ключ второй. Инверсия SRT-матрицы узла позволяет перейти от координат родителя к локальным координатам узла.

    Координаты мышки у тебя находятся на плоскости вьюпорта после их локализации в окне. Из вьюпорта ты можешь перенести их в пространство фрустума камеры, оттуда - в глобальное пространство своей сцены, получив или вектор в 3D, или точку в 2D. И вот когда ты получаешь свою мышку в глобальном пространстве сцены, дальше ты можешь делать все что угодно с объектами всей сцены.

    Дальше попробуй сам найти всю информацию. Я тебе обещаю бурю эмоций от процесса и гору удовольствия в конце. :)
  • Как получать и обрабатывать координаты мыши в окне OpenGL?

    @MarkusD Куратор тега C++
    NimuraF , как у тебя дела с пониманием линейной алгебры и операция над матрицами?
    У тебя ведь все так же 2D-пространство в игре?
  • Почему выводит -nan?

    @MarkusD Куратор тега C++
    MuffinLover , там 170 строк кода. Тебе нужно выделить короткую часть, где именно у тебя получается -nan и выписать ее в вопрос, правильно при этом оформив, согласно П3.8 регламента.
    Еще тебе следует описать все что ты наблюдаешь во время трассировки этого кода.
  • В чем преимущество статического массива перед динамическим?

    @MarkusD Куратор тега C++
    daniel_pr,
    Кстати, "у вас не статический массив" -- насколько я понимаю, это субъективно.

    Субъективность всю нужно оставлять за дверью, когда заходишь в программирование. Есть стандарт. Стандарт существует, прежде всего, для тебя. Другие люди не будут тебя понимать если ты будешь разговаривать на каких-то субъективных терминах.

    Между тем. "Статический массив" - это широко распространенное заблуждение. Что у тебя в книге называется статическим массивом, в стандарте называется массивом константного размера в C или массивом в C++.
    Динамический массив так и называется в C++, т.к. эксплуатирует не собственный термин, а термин массива из C++ и динамическое время хранения сущности.
    В этом отношении статическим массивом будет являться массив со статическим временем хранения.

    Эту всю терминологию путать нельзя. Тебя понять не смогут.
  • Почему на Java не пишут игры под десктоп?

    mayton2019, хорошо. Я тебя понял. Перейдем к более конструктивному общению.
    Ну и смотри еще. Я не игнорирую свое кураторство в тегах. Если вижу решение без пометки - я пометку ставлю.
  • Почему на Java не пишут игры под десктоп?

    mayton2019, да не. Но это хорошо что ты поделился своим впечатлением.
    Дело в передаче информации. С невежеством людей приходится бороться. Иногда и силовыми методами.

    Вот я бы пошел сейчас в теги вебдева теоретизировать как там должно быть правильно с моей т.з. Но я этого не делаю потому что не обладаю достаточной экспертизой. Достаточной - это значит достаточной чтобы без справочника давать рекомендации сотрудникам по бизнес-задачам. Это при том, что и вебдевом я тоже занимался/занимаюсь и что-то где-то знаю.
    Ты же себя не останавливаешь вопросами достаточной экспертизы. У тебя много ответов с никакой передачей информации: теории, догадки, предположения.
    Если я стараюсь писать только решающие вопрос ответы или не писать их вообще, то у тебя ситуация диаметрально противоположная.

    При таких исходных возможность настоящей ситуации является лишь вопросом времени.
    Я здесь практически ко всем отношусь одинаково хорошо. И к тебе, на самом деле, тоже. Но и игнорировать все время несостоятельность твоих слов у меня не получается.
  • Почему появляется SIGABRT в данном случае?

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

    SIGABRT - это далекое последствие. Скорее всего у тебя в коде внесен UB. У тебя падает код инициализатора полей WebDriver, он выполняется до тела конструктора.
    Проведи построчную трассировку инициализатора. Ты увидишь, инициализация какого поля приводит к падению.
  • Почему на Java не пишут игры под десктоп?

    mayton2019, кто тебе сказал что я про что-то забыл?
    Ты даже про механику AOT не в курсе, а она у тебя уже с чего-то мертвой оказалась.

    Не, ну ты в праве это все писать, тебя же ни кто не останавливает. Просто старайся придерживаться грани разумного. Не в тебе дело и не в моей реакции на твои тексты. А в том, что тебя начитаются и несут потом свет этой твоей истины, отхватывая регулярно по шапке от более радикальных людей, чем я.
    Я эту дичь регулярно наблюдаю. Ты же не свои слова и не свой опыт тут вещаешь, у тебя ведь есть куда более массовые источники.
    Ты лучше исправься в ответе и дальше.
  • Почему на Java не пишут игры под десктоп?

    Stanislav Mikhaylov, твой вопрос стоит переформулировать.
    неужели Java вообще не подходит для написания хороших десктопных оптимизированных приложений?

    Вот здесь нужно изменить на: "Неужели я не знаю на чем написан используемый мной софт и мои любимые игры?"
    Вот так будет более правильно. Это не Ява не подходит, это просто ты пока еще не задавался вопросами о том, на чем написано это или то. Игр на Яве очень много и они никак не выдают себя перед остальными.
    Массовый тренд на C++ и C# - это только за счет UE и Unity. Но на самом деле работу в геймдеве можно найти даже на D, который значительно менее популярный чем Ява.
    Довольно много компаний зовут заниматься геймдевом на Питоне, Луа, Яве и Шарпе. На этих языках пишется геймплей и бизнес-логика игр. На этих языках пишутся системы инфраструктуры, бекенд, утилиты сопровождения, интеграционный софт. Очень многих вещей конечный пользователь просто не видит. Современная игровая индустрия предлагает очень много работы с самыми разными инструментами, включая и Яву тоже.
  • Почему на Java не пишут игры под десктоп?

    Stanislav Mikhaylov, ты хвалишь ответ человека, который никогда не видел код игрового проекта, не знает как этот код работает и каким он должен быть чтобы быть именно кодом игрового проекта.
    Этот человек скор на теории и догадки, но реальности за его словами не больше чем реального опыта в игровой индустрии. Он не знает что такое Java AOT и Roslyn, не знает как работает ART, никогда не видел генерируемый этими механизмами код.
    Описанное в его ответе не соответствует действительности уже около 10 лет. Включая и все написанное про C#.
  • Как решить проблему в коде не запускается код, основные операции над бинарным деревом?

    @MarkusD Куратор тега C++
    ChastIOtvaga, когда человек сталкивается с проблемой и хочет ее решить, он прилагает все нужные усилия для того чтобы найти решение.
    В твоем случае необходимыми усилиями являются те, в результате которых твой вопрос станет максимально понятным для стороннего читателя.
    Ты прячешь информацию, не описываешь детали проблемы. У тебя что-то случилось, но ты ничего не делаешь для того чтобы тебе помогли. Сейчас ты показываешь что не заинтересован в решении своего вопроса.
    Зачем ты тогда задал свой вопрос?
  • Почему Clang (с -O3) не векторизует данный цикл?

    @MarkusD Куратор тега C++
    floppa322 , а как он должен это векторизовать если у тебя блоки памяти даже в true sharing не укладываются?
    Чтобы операцию можно было векторизовать, у тебя данные довольно строго должны укладываться в 128 бит. Желательно еще и выравнивание на 16 байт сделать. А то на x64 у тебя просто производительность упадет, когда на ARM упадет уже процесс по недопустимой операции на невыравненной памяти.
  • Как убрать ошибку с кодировкой при записи в файл?

    @MarkusD Куратор тега C++
    ioann_nifedov , П3.8 регламента работы сервиса.
    В процессе создания вопроса пользователь Сервиса обязан:
    Использовать для демонстрации фрагментов кода только специальный тег <code> или специальные демонстрационные ресурсы. Размещение фрагментов кода в виде изображений запрещено.

    Замени все скриншоты на правильно оформленный текст.
  • Настройка/выбор отладчика с/с++?

    aDron1990, как именно это связано с твоим вопросом?
    Даже если тебе нужен отладчик твоего кода в процессе разработки, к C++ твой вопрос не имеет все еще никакого отношения.