Задать вопрос
  • Как добавить в пространство имен нового проекта variant?

    Павел Соколов , П3.8 регламента работы сервиса.
    Любой код должен быть оформлен соответствующим образом.
    Вместо этого замыленного скриншота тебе лучше предоставить код сценариев сборки проекта. Там важны настройки проекта. Еще важно знать версию студии у тебя.
  • Для чего нужна двойная ссылка &&?

    @MarkusD Куратор тега C++
    Владимир Коршунов,
    Ещё возник вопрос, а есть ли разница между этими вариантами? В обоих случаях c имеет один и тот же адрес.

    Нет, разницы между этими двумя примерами нет никакой. Ссылка, согласно стандарту, это эфемер. У ссылки не описывается характеристик размера или выравнивания. С т.з. стандарта ссылка присутствует в коде только до момента окончания 7й стадии трансляции - стадии компиляции кода.
    На практике, все трансляторы под ссылкой понимают нечто иное и не такое эфемерное. Но суть сейчас в том, что на счет ссылки говорит стандарт.

    я прогнал у себя ваш пример и у меня отладчик в цикл даже не заходит.

    Это все потому что ты пока еще не очень хорошо ориентируешься между стандартами. В 14-м стандарте этот код может даже работать так как он написан. В 17-м поведет себя так, как я описал и это будет правильно. Если у тебя стандарт 17й и нет входа в цикл, то все тоже нормально.
    Все потому что в моем примере присутствует неопределенное поведение в следствии обращения к висячей ссылке.
    Я изначально написал что пример у тебя простой, но понимать его нужно строго правильно.

    В 17-м стандарте мой пример будет эквивалентен вот этому коду.
    int main()
    {
    	const std::vector<int>& data{ Foo{}.GetValues() };
    	auto current = data.begin();
    	auto end = data.end();
    	for( ; current != end; ++current )
    	{
    		const auto& value = *current;
    		std::cout << value << std::endl;
    	}
    }

    Теперь проблему лучше видно?
    Давай обратим внимание на std::vector<int>& data{ Foo{}.GetValues() }; и то, что я писал комментарием выше. Локальный временный уничтожается сразу после завершения операции.
    Сразу же после инициализации data становится висячей ссылкой. Следующая же строка уже вносит в код UB.
  • Почему создание временного объекта c помощью конструктора копирования оценивается как redeclaration?

    @MarkusD Куратор тега C++
    Станислав Макаров , как говорится, надо не думать, надо знать.
    Все так и есть. Одинарные скобки опускаются если выражение в скобках сохраняет семантику после раскрытия скобок.
    Поэтому, исходя из контекста выражения, Object (o1) воспринимается как определение объекта o1 с типом Object, а скобки в этом контексте являются уже деоптимизацией.
  • Для чего нужна двойная ссылка &&?

    @MarkusD Куратор тега C++
    Владимир Коршунов
    Я представляю это так: 5 находится в области памяти, записать в которую мы ничего не можем (из-за этого мы не можем написать, допустим, 5 = a), но при этом мы можем из этой области читать.

    Этот момент ты понимаешь неправильно.
    5 - это литерал с категорией prvalue. Категория выражения говорит о том, что выражение имеет полный тип и не является полиморфным, не является массивом, лишено идентичности.
    Но вот что важно! Для такого выражения невозможно получить адрес и такое выражение не может находиться в левой части операции присвоения.
    Вот почему 5 = a приводит к ошибке трансляции.

    Но что тогда происходит в выражении const int& c = 5;?
    Тут происходит инициализация константной ссылки. prvalue могут использоваться для инициализации только константной ссылки, в следствии чего создается локальный временный объект с типом эквивалентным подлежащему типу ссылки. Литерал же используется для инициализации этого локального временного. Обычно локальный временный уничтожается сразу после завершения операции. Однако здесь вступает в силу продление жизни временного за счет именно инициализации константной ссылки.

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

    Борис Животное, пожалуй есть такие видео. Просто все, что мне залетает в подборку, с тем же свистом из подборки улетает в баню потому что там со старта видно что автор это делает только ради рекламы.
    А целенаправленно я подобные материалы не искал. Люди вроде Cherno, с одной стороны, делают не обучающие, а больше обзорные видео. С другой стороны, их уровень видно и без их видео. Cherno ко мне в подписки пришел потому что я какое-то время занимался вычитыванием Hazel - его петпроекта.
    Клево будет если поделишься ссылками на достойные с твоей точки зрения каналы с достойными видео по обсуждаемому вопросу.
  • Какие инструменты нужны для разработки игр?

    freeExec, ни чуть. Это все один проект. Продакшен там разный, это верно.
    Тут, признаюсь, я больше снобизмом занимаюсь. Потому что под "проектом" или "игрой" в этих комментариях можно понимать разное. И, я так думаю, мы с тобой разное и понимаем.
    В конечном итоге, разные это проекты, один ли это продукт, или вовсе нет, ситуации такие бывают и по сей день. Инженерам одного инструмента в работе может не хватать.

    А еще есть Atomic Heart, который строят испокон веков и уже гору движков, концепций и подходов поменяли потому что захотелось. :)
  • Какие инструменты нужны для разработки игр?

    freeExec, в этом и суть. Одного движка для этой задачи не достаточно. И использовать пришлось уже несколько.

    Третьим, и самым упоротым, примером будут ремастеры. Рядовая практика для таких проектов - это максимально раздеть прошлый двиг проекта и, аки сову на глобус, натянуть оставшееся на новый. Со всеми вытекающими проблемами и казусами после релиза.
  • Какие инструменты нужны для разработки игр?

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

    Пример посложнее. Большинство мобильных игр раннего периода имели две полностью разных кодовых базы под андроид и йось. Таким же образом разработчики поступали и с играми под Java, Symbian, WinMO, BADA и прочие ранние мобильные ОС.
  • Как найти длинный путь между двумя точками?

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

    Алан Гибизов, автор очень торопится чтобы пытаться самостоятельно решить свой вопрос :)
    Но, в целом, это задание и есть.
  • Как работает сохранение в Skyrim?

    WasTabon, TES Construction Set. Набор инструментов для управления ресурсами TES каждой конкретной версии.
    Собственно, для скайрима тоже есть свой набор инструментов.
    Поэтому у тебя и возникают такие вопросы, что ты не посмотрел даже в папку с игрой и не почитал лежащие там документы.
    Механики работы ресурсов TES и самого Construction Set очень хорошо изучены и описаны сообществом моддеров. Тебе достаточно просто прочитать уже описанное.
    Там описано, в частности, что еще со времен Морроуинда сохранение представляет из себя патч основной базы данных мира игры. В этот патч вносятся все действия игрока. Этот патч вносит изменения во все, чего игрок касается и меняет.
    У этого патча есть зависимость от списка ресурсов основной базы, которые патч затрагивает. Поэтому сохранения привязываются к установленным модам.
    Сохранение можно открыть в TESCS и посмотреть его наполнение. Но для этого с сохранением нужно немного поколдовать, потому что формат его заголовка отличается от формата основной БД мира, с которой CS и работает.
  • OpenGL Как починить шейдеры GLSL?

    Redens , если у тебя код на Java, то зачем в тегах ты указываешь C++?
    Если у тебя вопрос по шейдерам и OGL, то зачем в тегах указаны другие инструменты?

    Фраза "все перестало работать" не описывает ничего ровным счетом. Давай разберемся, что же именно перестает работать. Сперва давай поймем, что именно у тебя работало до установки шейдеров и почему у тебя в OGL 4.6 что-то вообще работало до установки шейдеров.
    Твой вопрос нужно решать начиная с этого места.
  • Каким алгоритмом отображать кнопки со свойствами?

    @MarkusD Куратор тега C++
    Newmo, если разницы между платформами нет, значит и C++ не важен.
    Тебе определенно нужен алгоритм. Реализовать его ты сможешь уже любым инструментом.

    Знаком ли ты с масками? Что ты знаешь про битовые операции? Знаешь ли законы де Моргана?
  • Как решить проблему с текстом в консоли Visual Studi 2022?

    @MarkusD Куратор тега C++
    stepuasha, ну если дело не в самом коде, то хорошо. Значит я ошибся. Посмотрим на ответы при такой постановке вопроса.
  • Как решить проблему с текстом в консоли Visual Studi 2022?

    @MarkusD Куратор тега C++
    stepuasha , проблема в нарушении П3.8 регламента. Сразу дважды.
    Зачем людям пытаться читать мыльный и неразборчивый текст у тебя на скриншотах?
  • Как создать простую glsl анимацию?

    banandai , а где конкретно пишется что циклы в шейдере использовать нельзя?

    Ты уже разобрался чем шейдер кормить для реплики этой анимации и чем кормится референсный шейдер? Точно ли референсная анимация является шейдерной? У тебя уже есть представление, на какой стадии пайплалйна вычисляется референсная анимация?

    У тебя есть что-нибудь из анализа кадра референсной анимации?
  • Как включить подсказки в Visual Studio 2022?

    stepuasha , понимаю. Без подсказок по конкретике твоего вопроса ответить на него также тяжело.

    У студии много разновидностей подсказок. Подсказки меню, подсказки интерфейса, подсказки настроек проекта, подсказки управления и сборки проекта, контекстные подсказки, подсказки дополнения, подсказки размещения, подсказки использования... и так далее.

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

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

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