Задать вопрос
  • Как в шаблоне тип результата одной функции связать с типом параметра другого метода?

    @MarkusD Куратор тега C++
    rustler2000, теперь становится ясно, что значат слова про сильное изменение entity.
    Определения bound method для C++ не существует. У тебя там просто синтаксис нарушен в коде, поэтому трансляция и не проходит.

    Если у тебя конвертируются только перечисления, то вопрос действительно тривиальный. Посмотри на документацию decltype. Ты его неправильно написал.
    Этот пример не образцовый, не советую использовать его как есть. Но суть тебе должна быть понятна.
  • Как в шаблоне тип результата одной функции связать с типом параметра другого метода?

    @MarkusD Куратор тега C++
    rustler2000, типы с какими характеристиками фигурируют у тебя в этом коде? Простые типы есть? Инвариантные? DTO есть? Правила неявного или явного преобразования из одного типа в другой всегда определены?
  • Как на хабре сделать продолжение вопроса (например как ветку)?

    Никита Абалихин , П3.4 регламента.
    По моим наблюдениям за довольно большой срок, гораздо больше шансов на ответ будет у вопроса тогда, когда он ближе к соблюдению правил.
  • Подводные камни удаленной работы на организацию в другом регионе РФ (с оформлением в штат)?

    У меня есть опасения, что трудовую потеряют и/или не оформят меня в штат, хотя конечно такое же может случится и с компанией из моего родного региона.

    C 2020 года трудовые оформляются только в электронном виде. Работая в этот период времени с другим нанимателем, ты должен был подписать один из двух документов: или документ об отказе оформления ЭТК, или документ на согласие переноса записей твоей трудовой в ЭТК.
    В обоих случаях трудовая отдается тебе по окончании найма, но во втором случае она теряет свою значимость перед ЭТК.
    В это же самое время, твой следующий наниматель уже обязан взять твою трудовую и оформить все ее записи в ЭТК, если этого не было сделано раньше. Трудовую тебе вернут уже заблаговременно, до окончания найма.
    Тебе нечего опасаться. ЭТК у тебя или уже есть, или будет сразу после вступления в должность.
  • Ошибка при компиляции платы ардуино что делать?

    AiZeK-E, если ты новичок, то тебе стоит сперва взять книжку, хоть немного изучить синтаксис языка и только после этого уже переходить к разработке под МК.
    В ином случае тебя ждет безысходность от вечных ошибок трансляции и непонимания как их исправить.
    Возьми Стивена Прату для самого начала.
  • Дёргается вывод "игры" в консоль, можно исправить?

    xXx_Unity_xXx ,
    по понятным причинам

    Ну рас причины тебе понятны, то ты и справиться с ними можешь самостоятельно, не задавая вопрос здесь.
    Но дело в том, что для всех остальных эти понятные причины непонятны, а термин "дёргается вывод в консоли" не является общепринятым и, значит, тоже непонятен.
    Если тебе нужен совет, то тебе стоит более подробно описать то, что тебе не нравится в работе твоего кода.
  • Загрузка 3д моделей Opengl?

    Дмитрий, он там этого не найдет. Ты только зря потратил свое время на создание необоснованной и ложной догадки.
  • Загрузка 3д моделей Opengl?

    Zorroti
    Здравствуйте.

    П3.4 регламента работы сервиса. И нет, здесь это не является признаком культуры.

    Насколько я вижу, ты довольно неохотно ставишь решения на ответы с решениями. Поэтому от меня ответа не будет. Взамен я просто коротко расскажу как это делается.
    Сперва тебе надо обратиться к документации на блендер и изучить его API для экспорта. Будет хорошо если в этот период ты напишешь несколько плагинов к блендеру, которые будут выгружать модель в какой-нибудь текстовый формат. JSON, XML, это не важно. Важно чтобы ты научился работать с API экспорта.
    Потом тебе надо обратиться к документации OpenGL и изучить механизмы взаимодействия с ним. Будет хорошо если в этот период ты напишешь несколько полноценных проектов со сценой, материалами и пайплайном рендеринга. Важно чтобы ты на этом этапе усвоил что и в каком порядке OGL требует чтобы нарисовать модель.
    После этого у тебя сложится понимание того, как геометрию из блендера через плагин экспорта перетащить в формат файла, который далее твой код на C прочитает и начнет использовать для отрисовки сохраненной в нем модели.
  • Как имея позицию и направление двух объектов в пространстве координат y, x, z, повернуть один объект в другой?

    gazes12, локальная система координат в самом прямом смысле означает локальную систему координат. :)
    Для того самого объекта, который тебе надо вращать, локальной будет система координат с центром в точке вращения объекта. Все вектора внутри этой системы отсчитываются все так же от нуля, но уже от нуля этой локальной системы координат. Поэтому я и говорю о нуль-векторах. Еще нуль-вектора называют лучами или вектор-направлениями. Лучи всегда исходят из центра координат и описываются только своим направлением. При этом, любое из произведений выполняется для двух векторов, но использует и центр координат (нули) как третий вектор.
    Косинус - это отношение прилежащего катета к гипотенузе прямоугольного треугольника. Один вектор скалярного произведения описывает катет, второй вектор - гипотенузу. В центре координат находится вершина этого треугольника. Косинус этого угла определяется через скалярное произведение этих векторов.
    Там же, в центре координат, находится и точка происхождения и вектора нормали, который получается в результате векторного произведения. Нормаль - такой же луч и точно так же описывается только своим направлением.
    Матрицы трансформации как раз и используются для переходов между локальными и глобальными системами координат. Та самая SRT-матрица определяет сразу три, вложенные друг в друга, локальные системы координат: ниже всех система масштабирования, над ней - вращения, а над ней - трансляции. И именно поэтому порядок операций при получении правильной SRT-матрицы так важен.

    У тебя есть текущие координаты твоего объекта A, который тебе надо вращать. Это координаты в глобальной системе координат, в мировой системе, пожалуй. Они для операции не подойдут. Тебе подойдет, допустим, направление оси X из SRT матрицы этого объекта. Этот нуль-вектор будет находиться в локальной системе координат объекта A. Для того чтобы навести объект A на объект B, его текущие координаты в глобальной системе координат нужно перевести в локальную систему объекта A. Минимально это можно сделать через простое вычитание координат объекта A из координат объекта B. Полученные локальные координаты объекта B нужно нормализовать.
    И уже эти два полученных нуль-вектора можно использовать для вычисления угла поворота и направления вращения.
  • Где ошибка в работе вершинного шейдера?

    @MarkusD Куратор тега C++
    Павел Соколов, иными словами, ты рассчитываешь что заданные тобой позиции вершин должны дойти до пиксельного шейдера без трансформации? Твой код сейчас работает иначе.
    Твоя красная точка - это и есть твой треугольник. "Debug -> Graphics -> Start Graphics Degugging", сделай захват кадра и проверь что треугольник у тебя рисуется.
    Твой треугольник рисуется в пространстве координат поверхности экрана и занимает немногим меньше одного пикселя. Сложно сказать почему твой код ведет себя так. На этот процесс влияет даже настройка вьюпорта. Среди функций устройства есть много кандидатов на то, чтобы понести ответственность за результат у тебя.
    Лог из захвата кадра может сильно помочь в понимании причин. Если по этому логу еще будет не понятно, то скинь сюда данные стадии вершинного и пиксельного шейдера из захвата. Там есть информация о том, какие координаты пришли на вход и какие - ушли на выход.
  • Где ошибка в работе вершинного шейдера?

    @MarkusD Куратор тега C++
    Павел Соколов , это не с вершинами что-то не так. Но все по порядку.
    Покажи кодом, как именно ты задаешь вершины треугольника.
  • Какие есть способы скрытого(от запущенных программ) чтения содержимого оперативной памяти в Windows 10?

    VoidVolker, принцип работы WinMemApi довольно прозрачен для целевого процесса и очень легко определяется прямо изнутри процесса. Там же, и так же легко, купируется. Но даже на этом уровне уже требуется быть подготовленным специалистом в разработке чтобы пользоваться этим API.
    BE обладает собственным драйвером уровня ядра и на более глубоком уровне отслеживает вмешательство в целевой процесс. Процесс создания контрмеры для BE от специалиста требует глубоких профессиональных навыков и понимания принципов функционирования целевой оси. Такое понимание человек может обрести только работая у майков в команде разработки оси. Разработчики BE консультируются у майков по подобным вопросам.

    В этом плане автор хочет странного. Ни знаний, ни навыков у него нет вообще, но вот сделать прям сча и чтобы работало ему очень хочется. Но вот чтобы посмотреть на топологию памяти и для обучения, ему это все не нужно. На этом основании я его вопрос и оставляю без ответа.
  • Как объединять несколько языков одном проекте?

    Keith Griffon
    C++ я решил взять из-за скорости, чтобы не тупило приложение, kotlin решил взять потому что я пишу приложение-мессанджер, а php будет серверной частью

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

    Тебе стоит переформулировать свой вопрос. В нем нужно написать: что именно ты хочешь сделать, почему именно эти языки ты выбираешь, как ты хочешь использовать выбранные языки и в каких местах, по твоим соображениям, проекта должны быть точки стыковки между языками.
  • Как правильно оформить присваивание значения возвращаемого из функции C++?

    @MarkusD Куратор тега C++
    Wataru, а вот так:
    Matrix out{ Transpose( in ).Inverse() };
    Это при том, что метод Inverse может иметь сигнатуру Matrix& Matrix::Inverse(); и возвращать *this для того чтобы позволить Method chaining для объекта матрицы.

    И ровно в это же время для кода Matrix out{ Transpose( in ) }; будет вызван не конструктор копирования, а именно конструктор перемещения, аргументом которого является Matrix&&. Такое приведение невозможно для константных объектов. А prvalue можно использовать для инициализации rvalue reference.
  • Как правильно оформить присваивание значения возвращаемого из функции C++?

    @MarkusD Куратор тега C++
    Wataru
    В него нельзя писать, но его можно читать. Оно const.

    Вот тут неправда.

    Понимание этого тонкого момента зависит от понимания категорий выражений в языке.
    Для метода Matrix Transpose(Matrix &Mat) будет возвращено локальное временное значение с категорией prvalue.
    Значения с такой категорией лишены идентичности, динамического типа и размещения. Их нельзя передать по неконстантной ссылке. Читать и писать в него можно при этом.
    Именно поэтому у автора транслятор не может найти подходящий оператор. У него и копирование сделано через оператор разрушающего копирования, и метод транспонирования может модифицировать состояние аргумента. А это - в корне неправильно.
  • Достаточно ли будет чтения cppreference для освоения STL?

    @MarkusD Куратор тега C++
    Joe Doe, ну тут ситуация от обратного. :)
    Я очень рад что мне удалось помочь, но в списке ответов у меня в профиле мне такой не нужен. Это потому что я не могу выразить весь этот текст в более удачной для решения вопроса форме. Мой комментарий - это как будто простое уточнение к уже изложенным ответам.
  • Достаточно ли будет чтения cppreference для освоения STL?

    @MarkusD Куратор тега C++
    Joe Doe, для начала, неплохая книга. С нее можно самые азы работы с языком понять.
    Отвлечемся немного от формулировки вопроса.

    Суть работы инженера состоит в оперировании документами и в решении своей рабочей задачи через связи между документами. Основным инструментом работы инженера П.О. является именно набор документов: стандарт языка, документация и т.н. пояснительная литература в виде книг и справочников. Это все означает что все вот эти источники информации с тобой теперь навсегда в твоей трудовой жизни. Бесконечно рыться в недрах cppreference при решении своей задачи - это в порядке вещей.
    Просто читать cppreference на твоем этапе можно. И этого даже хватит для составления своих представлений. Для общего понимания будет достаточно просто глазами пробежаться по разделам библиотеки и понять что в ней вообще есть. И вот когда будешь решать конкретную задачу, ее подзадачи должны у тебя начать встречаться с известными тебе элементами стандартной библиотеки. В этот момент уже можно идти на cppreference и прямо детально читать контейнеры, алгоритмы, черты, конкурентность и так далее.

    С беглым обзором STL тебе еще поможет самое начало вот этой книги. Сразу сходу углубляться в нее не стоит, там описывается довольно много глубоких подробностей языка. Или, вот еще книга, по которой почти 20 лет назад учился я. Лучше тоже только самое начало затронуть.