• В чём может быть ошибка?

    @MarkusD Куратор тега C++
    Ferbines , зачем в нарушение П3.8 регламента работы сервиса ты разместил скриншот с кодом? С чем у тебя связана проблема взять сообщение об ошибке из лога сборки и разместить его здесь в блоке кода?
    Написано
  • Насколько мой код читабелен?

    @MarkusD Куратор тега C++
    AVAtarMod, это было бы полезно оформить в виде отдельного вопроса.
    Я думаю, многие люди будут рады высказать свое мнение по этому поводу.

    От себя могу сказать довольно коротко. За базу стиля обычно берут Google C++ Code Style [1], [2].
    Но у GCCS есть несколько недостатков, т.к. он больше ориентирован на пользователей C пересевших на C++.
    Его проблемы выражаются в правилах использования указателей и неиспользования ссылок. В C++ ссылка имеет более важное значение по сравнению с указателем. Принципы работы со ссылками и указателями хорошо объясняются в C++ Core Guidelines.
    Исправленный в соответствии с C++ Core Guidelines GCCS будет довольно близким к тому чтобы называться эффективным с точки зрения выразительности кода.

    Но есть еще одна важная штука: передача смысла написанного кода. С этим у имеющихся стилей вообще все плохо. Книга Дастина Босуэлла в очень доходчивой форме передает важные приемы для повышения смысловой отдачи кода.

    Я использую базу стиля GCCS с указанными выше исправлениями. Однако, свой стиль кода я пока не публикую потому что его оформление - это тоже большая инженерная работа, которую я пока ленюсь сделать.
    Написано
  • Как заполнить вектор в отдельной функции?

    @MarkusD Куратор тега C++
    nimbus214, исправить это очень легко. Открываем любой учебник по языку, читаем что такое процедура и что такое функция, чем они отличаются и как ими пользоваться.
    Касательно твоего вопроса: открываем все тот же любой учебник по языку, читаем что такое указатель и что такое ссылка, когда чем пользоваться и к каким результатам это может привести.
    Из учебников, например, Крис Пратт: Язык программирования C++.
    Написано
  • Как создать каталог, название которого состоит из переменной?

    @MarkusD Куратор тега C++
    RG0609, это тривиальный вопрос на знание самых основ языка. Проверку ты не прошел. Код даже сформулирован таким образом, чтобы дать понимание происходящего у тебя в коде процесса.
    Твой код полностью идентичен моему, а результатом у меня будет 0x0F. Это не то, чего ты ждешь от своего кода. Современные трансляторы и вовсе не позволят тебе этого сделать, явно указав на смысловую ошибку в строке left + right потому что тебе гарантировано и никогда не нужно складывать два адреса памяти.

    Если ты хочешь состыковать содержимое строк, тебе нужно складывать объекты std::string или std::wstring.
    Если ты хочешь состыковать две строки разного типа, сперва тебе требуется привести строки к одному типу - ожидаемо к std::wstring через конверсию строк.
    Для этих типов оператор + [?] работают так как ты ожидаешь.
    Написано
  • Как создать каталог, название которого состоит из переменной?

    @MarkusD Куратор тега C++
    RG0609 , а ты разобрался почему тебе пишется именно такая ошибка?
    const char* left = 0x05;
    const char* right = 0x0A;
    
    const char* result = left + right;

    Что будет записано в result после инициализации?
    Написано
  • Как узнать имя пользователя Windows?

    @MarkusD Куратор тега C++
    Владислав, а чем тебе не понравился развернутый пример в документации? Он доступен прямо по ссылке со страницы документации.
    Написано
  • Как в одном месте объединить разные блоки кода?

    @MarkusD Куратор тега C++
    Сергей Комаров, увы, но мантра про никчемность не работает когда произнесена человеком без опыта и реальных результатов. Да и не можешь ты так же, как я. Ты и в вопросе-то ничего толком не написал, тебя исправлять пришлось.
    На каждом этапе развития человека его проблемы являются сложными для него самого. Мне потребовалось узнать уровень твоей осмысленности действий. Собственно, ты все уже показал, ничего не ответив по существу, но аж целых два раза написав один и тот же текст, только бы я точно получил уведомление. Надеюсь, ты не переписывал его второй раз, а просто скопировал? Столько времени потратил в никуда. А ответил бы по существу, смог бы уже сейчас пользоваться очень полезными знаниями, которые я бы тебе передал совершенно безвозмездно.
    Но пока ты останешься лишь с тем, что получил.
    Написано
  • Как в одном месте объединить разные блоки кода?

    @MarkusD Куратор тега C++
    Сергей Комаров, ну вот и хорошо, твои навыки письма проверку прошли, писать ты можешь в достаточном объеме. Осталось только поработать над тем чтобы написанное тобой отвечало цели поиска решения твоего вопроса, а не демонстрировало твою слабость. Да и пусть с ней, со слабостью твоей, все люди разные. Ты, просто, подготовься в следующий раз, соберись с мыслями, возможно у тебя сразу все и получится.
    Я тебе даже совет дам полезный, пробегись по моим ответам и почитай тексты вопросов чтобы набрать примерное понимание того, когда вопрос является достаточно информативным чтобы его получилось решить. Вот например.
    Написано
  • Как в одном месте объединить разные блоки кода?

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

    @MarkusD Куратор тега C++
    Сергей Комаров, обрати внимание на то, как я позвал тебя в своем комментарии. В результате ты смог узнать о моем комментарии из своих уведомлений в максимально сжатые сроки. Я о твоем комментарии узнал чисто случайно и спустя 10 часов. А мог бы и не узнать вообще.
    Ты не ответил и на половину моих вопросов и не уведомил меня о своем ответе. Я не вижу твоей заинтересованности в решении твоего вопроса. Тебе точно настолько важно решить свой вопрос, что ты к нему решил привлечь внимание других людей с тостера?
    Когда человеку важно решить проблему, он прикладывает все свои силы к тому чтобы другие люди могли разобраться и помочь ему.
    Я ожидаю от тебя описания процессов. Как конкретно ты собираешь код, какие действия для этого выполняешь, как конкретно ты проверяешь работоспособность кода, по каким критериям ты определяешь что твой код не работает, на основании каких наблюдаемых тобой эффектов от кода?
    Написано
  • Как в одном месте объединить разные блоки кода?

    @MarkusD Куратор тега C++
    Сергей Комаров, в чем ты пишешь код? Чем код собираешь? Как конкретно проверяешь работоспособность кода?
    Мне кажется, решение твоего текущего вопроса находится где-то среди ответов на мои вот эти вопросы.
    Если ты дашь ответы, то, думаю, я смогу дать тебе решение твоего вопроса.
    Написано
  • Насколько мой код читабелен?

    @MarkusD Куратор тега C++
    AVAtarMod, хорошо. Это очень простой и очень наглядный пример.
    Сейчас, за счет склейки квалификатора const и модификатора * ты у читателя украл около секунды времени. Лично мне сейчас, да и практически всем инженерам в таких случаях, приходится вчитываться в странное слово между char и c_ptr.
    Среднее время реакции человека - одна секунда. Ты ее крадешь, пряча от читателя модификатор, склеивая его с квалификатором или именем инстанции.

    С другой стороны, у тебя в коде присутствуют всякие IntList1D &list, где ты приклеиваешь модификатор к имени. А вот сейчас в коде char *const c_ptr что ты можешь приклеить к имени? А ничего. И выходит что у тебя оформление кода неоднозначное, заставляет все время вчитываться. И чтение твоего кода заставляет тратить на это значительно больше времени чем чтение профессионального кода.

    Ты, скорее всего, знаешь что модификаторы имеют отношение к имени инстанции, а не к типу, это верно. Но это не работает там, где каждая миллисекунда твоего внимания стоит много денег. А внимание и время сотрудника очень дорого стоят. Мы используем акценты и экономим время своих сотрудников. В частности, мы делаем акцент именно на оформлении типа: char* const c_ptr.
    Все, всего одна правка и акценты уже на местах, имя свободно и легко читается, пишется сразу в подкорку и не тратит время сотрудника.

    В своей работе мы руководствуемся C++ Core Guidelines и стандартами оформления кода. Мы стараемся писать самодокументируемый код и ценим внимание сотрудников. Мы следим за тем, чтобы другой человек мог свободно исправить наш код без риска внести в него ошибку по невнимательности.

    Хоть ты и отметил решение на свой вопрос, я рекомендую тебе не отказываться от остальных ответов, они тоже являются решениями твоего вопроса. У меня тоже есть что сказать по поводу твоего кода и я оставлю свой ответ когда найду время для него. А пока у тебя есть великолепная возможность пройтись по истории моих ответов и ответов других людей, вдруг ты найдешь что-нибудь полезное для себя.
    Написано
  • Насколько мой код читабелен?

    @MarkusD Куратор тега C++
    Johnny Gat, дело в том, что это "субъективно наглядное" изобилует сервисным кодом, который конкретно здесь служит исключительно и только для размытия прямой логики.
    Если выражение является предикатом, то зачем для определения булева результата делать булеву проверку результата этого предиката? Это и есть наглядный пример безумия: как легко и просто запутать читателя кода.
    Написано
  • Насколько мой код читабелен?

    @MarkusD Куратор тега C++
    AVAtarMod , напиши пример, как ты объявишь переменную типа константного указателя на символ.
    Написано
  • Исправить функцию броска луча?

    @MarkusD Куратор тега C++
    Булат Антонов, прочитать материал - это одно. Понять материал - это другое.
    Вот в чем суть. В твоих объяснениях я не наблюдаю понимания теории. Код у тебя не показывает даже алгоритма Брезенхама, но он имеет серьезные ошибки, не позволяющие ему даже приблизительно называться трассировщиком. Вот эта самая cast_ray просто скачет пикселями, а не чертит прямую. А ведь про алгоритм Брезенхама описывается в статьях что я привел.
    Лучи исходят из источника света по закону этого источника, но регистрирует лучи только активная камера, с которой требуется результат. Это означает что считаются только лучи исходящие из источников и только входящие в камеру. Это считается математически и этого кода у тебя просто нет.
    Луч имеет только начало и направление. Больше ему ничего не надо. Синусы и косинусы тебе не нужны, т.к. уравнение прямой записывается как y = ax + b, из чего довольно легко выводится параметрическая запись с зависимостью от точки начала и вектора направления. Далее луч никуда бросать не надо, надо просто определить, хоть полным перебором, какие объекты сцены пересекают этот луч, найти точку проекции, посчитать направление отражения и определить, виден ли отраженный луч в камере. И это все описано в приведенных мной статьях. В цикле OpenGL тонкости трассиновки буквально разжевываются.
    Поэтому я предлагают тебе не прочитать, а понять изложенное.
    Написано
  • Исправить функцию броска луча?

    @MarkusD Куратор тега C++
    Булат Антонов, похоже пока тебя нужно заряжать информацией.
    Тебе стоит пока освоить теорию: [1], [2], [3], [4], [5], [6], [7], [8].
    Тебе это все надо не просто прочитать, а понять все написанное там. Все циклы статей по ссылкам. Когда у тебя пойдет понимание изложенного, поднимутся новые вопросы, на которые ты уже сам сможешь ответить по все тем же материалам или уже самостоятельно найти новые статьи и книги.
    Просто, вот я честно пока не знаю как короткими сессиями передать тебе вот такой объем информации.
    Написано
  • Как создать собственный язык разметки для проектирования интерфейсов (С ++)?

    @MarkusD Куратор тега C++
    vhrytsiuk , начинай с чтения книг. Судя по вопросу, тебя интересуют технологии: event-driven, языки и трансляторы и объектно-ориентированная модель. И еще что-нибудь из ретроспективы архитектур пользовательских интерфейсов: про PAC, MVC, MVP, MA и их поздние вариации на тему.
    Попутно с этим тебе стоит изучить опыт открытого исходного кода: Rocket UI / libRocket, Awesomium, Imgui, Nuklear и прочих.
    Для начала этого, думаю, хватит.
    Написано
  • Исправить функцию броска луча?

    @MarkusD Куратор тега C++
    Булат Антонов, лучше перенести обсуждение отсюда сюда. Обрати внимание на то, что для привлечения твоего внимания я ставлю упоминание тебя. Без этого ответ можно ждать очень долго потому что человек не будет знать что ему ответили.

    В ответе мне ты написал про нули координат - (0, 0, 0). У тебя там источник света? Или у тебя там камера?
    Знать точку отправления луча полезно, но чтобы луч запустить, нужно знать направление исхода луча.
    Луч по своему определению имеет точку начала и вектор направления.
    И если точка начала - это вектор-точка в пространстве координат, то направление - это вектор-направление единичной длины.

    Поэтому следующим вопросом будет: в каком направлении тебе надо бросить луч?
    Написано
  • Качественная подгрузка .sys драйвера?

    Вадим Ушаков
    Интересует рабочий код, могу даже заплатить .

    Тогда тебе на фриланс. Здесь такое называется заданием и нарушает П5.12 регламента работы сервиса.
    Написано
  • Исправить функцию броска луча?

    @MarkusD Куратор тега C++
    boulat5280, ты зря проигнорировал мой комментарий еще в самом первом твоем вопросе.
    У тебя был шанс лучше и раньше понять то что ты делаешь и почему у тебя не получается.

    Показанная тобой функция не является функцией рейкаста и не является функцией рейтрейсинга. Это просто какая-то функция и она что-то делает. Тебе нужно словами объяснить какого результата ты хочешь добиться от своей игры и зачем тебе для этого лучи. Объясни своими словами как можно подробнее.
    Если продолжишь игнорировать эту необходимость, ты так и останешься с тем что у тебя сейчас.
    Написано