Задать вопрос
  • Почему двоится изображение на мониторе?

    SpecteRED, ну ок. Давай еще пальцем тыкнем вот куда. Vsync.
    Включена ли вертикальная синхронизация в игре? Если да - отключаем и передергиваем DP на горячую при двоении на мониторе. Для уверенности можно и на HDMI перекинуться для этого.
    Ось виснет не от хорошей жизни. У HDMI и DP механизмы обратной связи малость разные. Если моник провалит реакцию в нужный момент, драйвер оси не выведет ее из особого режима работы. Снаружи это выглядит как повисание оси.
    А еще надо бы посмотреть логи драйвера в этот момент.
  • Почему двоится изображение на мониторе?

    SpecteRED,
    С учетом этого есть еще варианты?

    Вариантов вообще нет. :) Оборудование находится у тебя в руках и только тебе ведомо что с ним творится. По своему опыту подобных расследований знаю что словам владельца верить нельзя вообще. Прихожу сам, делаю ровно те же тесты и проблема находится в два счета. А человек делал по-своему и что-то позабыв сделать/рассказать ровно с тем же расчетом: "Не думаю что это что даст".

    Погасание монитора может говорить о том, что его декодер словил от GPU недопустимые данные. Как правило это недопустимый для отображения цвет в какой-то конкретной области монитора. Искажение картинки после погасания может говорить о рассинхронизации уже самого монитора. Пробуем отключить и подключить DP на горячую, без ребута.
    Про погасание монитора - тонкость упущенная. Даже боюсь представить сколько еще у тебя из рассказа выкинуто за ненадобностью. :) Это все сводит любые мои слова к банальному гаданию на кофейной гуще.
  • Возможно ли проверить является ли T std::function?

    @MarkusD Куратор тега C++
    А на лямбду тебе проверка не нужна?
  • Почему двоится изображение на мониторе?

    SpecteRED, отсутствие двоения при внутреннем захвате сразу исключает всю цепочку от игры и до драйвера GPU.
    Далее тебе надо сделать ряд тестов. Самостоятельная диагностика таких проблемы без знаний - это та еще морока.
    Первое - это после начала двоения выключить монитор и включить снова. После включения проверить двоение. Современные мониторы выключить можно двумя способами. Нужно обоими, один способ за один тест. Второй способ - это после обычного выключения вынуть кабель питания больше чем на 30 секунд.
    Второе - подключить телек как первый монитор. Подключить его как единственный монитор. Перекинуть кабель с монитора на телек после начала двоения. Одно действие - один чистый тест, т.е. начинаем с состояния отсутствия проблемы. После каждого действия проверять наличие или отсутствие двоения.
    Третье - поменять видюху. RTX 4070 Ti - это проблема сама по себе. Отвал оси при работе через HDMI может сказать о проблемах с памятью видеокарты. 4070 шальные просто сами по себе, а у Ti вообще регулярно кукушечка отлетает даже если тушка от хорошего бренда. Про китайщину даже говорить не приходится.
    Четвертое - снять телеметрию GPU во время игры и точно определить время начала двоения. По телеметрии будет хорошо видно, какие изменения в состоянии видеокарты приводят к проблеме.
  • Какой вариант на ваш взгляд лучше для интерфейса?

    @MarkusD Куратор тега C++
    Dyikot, не-не. Ты на месте топчешься.
    У тебя в чем проблема же? Тебе maaGames все очень хорошо описал. Ты в сокет как будешь читать и писать? А в буфер свободной памяти?
    Первое дело - это объект, в который будет выполняться сериализация и из которого будут браться данные для десериализации. Это - шаблон потока (stream).
    Второе - это формат сериализации. Тебе требуется во всех деталях понять шаблон посетителя (visitor).
    Третье - это пейлоад, т.е. сериализуемый объект и цель десериализации. Для него есть шаблон сериализуемого (serializable).

    const std::string& delimetr - зачем эту сугубо приватную тонкость формата знать внешнему коду?
    Пока в коде у тебя видно что ты не совсем представляешь себе как все должно работать. Тебе не хватает структуры в голове сперва, поэтому код выглядит рваным.
  • Какой вариант на ваш взгляд лучше для интерфейса?

    @MarkusD Куратор тега C++
    Dyikot, думаю, тебе уже понятно что никакой из обоих твоих вариантов не лучше. Потому что они оба одинаковы и одинаково плохие.
    Имена выбраны плохо. Из-за этого твой код вводит в заблуждение. std::any используешь не по назначению. SerializationData - это костыль как есть и назван отвратно. Какой шаблон проектирования применяешь - тебе и самому не ясно. А применяешь ты его не по месту и полностью неправильно.
    Только не думай что для тебя лично ситуация сейчас сложилась плохо. Извлекай опыт и становись грамотнее.
    Ответ на твой вопрос: оба варианта - дно. А вопроса "как надо" от тебя не было. Поэтому качественных вариантов не предлагаю.
    В сети просто море документов про сериалиацию. Мне этого хватило для выработки своей системы ценностей. Тебе тоже должно хватить. Но если задашь правильный вопрос, я на него отвечу.
  • Данные в таком случае будут хранится в стеке?

    @MarkusD Куратор тега C++
    Dyikot, потому что давай подумаем что же ты в этой строчке написал.
  • С++ автоматически вставляет в функцию ссылку на вектор?

    @MarkusD Куратор тега C++
    Алескей Дворяшин
    в качестве аргумента функции в самом объявлении функции указана ссылка.

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

    Как так то? C++ автоматически берет ссылку?

    C++ - это язык. Работу выполняет транслятор. Ни один из них ничего сам без просьбы не делает. Язык так и вовсе лишь стандартом представлен.
    Сам что-либо делает только писатель кода. Вот как ты написал, так транслятор код согласно стандарту языка и обработает. Это ты написал передачу по ссылке, транслятор просто обработал код согласно стандарту.
  • Почему статическая переменная инициализируется дважды?

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

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

    Register::Registry::RegisterActorWithComponent - это не конструктор. Это метод.
    Под вопросом то, как именно этот метод вызывается. Тебе нужно показать как именно до функции main вызывается этот метод.
  • Google Play Console не принимает номер телефона при подтверждении аккаунта разработчика. Кто решил аналогичную проблему?

    RWGames , коротко, это вторичные санкции со стороны США.
    С 12го сентября гугл не принимает мобильные номера из РФ, РБ и частично из КЗ. Все из-за того, что в КЗ часть операторов являются субоператорами операторов РФ. Со всеми вытекающими.
    Не, ну а чо. кто-то в наши дни реально думает что у них там рынок свободный и управляется через конкуренцию? Будет надо - и закон напишут конкретно против тебя по имени.
  • Слизался винтик, что делать?

    Cheliikk, поищи на маркете набор экстракторов. Это леворезьбовые конусы, нужен будет под марку твоего винта. Для экстракции тебе еще потребуется сверло по металлу калибра чуть меньше марки винта. Сверлом надо будет подготовить отверстие под экстрактор. Шурик же имеется?
    Попутно тебе потребуется заменный винт той же марки и из того же материала, скорее всего из нержи. На винты советую денег не жалеть, цена в себя включает качество резьбы. Ну и купить стоит впрок, чтобы менять как только шлицы на очередном поедут.
    Чтобы шлицы больше не слизывались, купи простую динамометрическую отвертку. В руководстве к ноуту всегда пишутся моменты затяжки винтов.
  • Интересный 3D принтер?

    Hox , повышай свою подготовку в электробезопасности и электрике. А то даже программистом не сможешь работать, ТБ для допуска к ПК не пройдешь. Изложение процессов на уровне кухарки из прошлого века.
    Тебе сейчас эксперты в ответах напихают, конечно, 100% решений, но ты все равно просто замени БП. Это дешево, на алишке горы вариантов, включая и магазин Creality. Это должно быть понятно даже самому тупому недошкольнику: если на этой розетке чайник на 2.5кВт нормально кипятит воду, а БП на 350Вт от принтера гасит автомат через нее же, значит проблема в БП и его надо менять.
    Нельзя подключать нагрузку в обход предохранителей. Если из-за тебя выгорит домовая сеть или оборудование у соседей, одной проданной почкой ты не отделаешься.
  • Почему для самого класса статическая переменная использует правильное значение, но при попытке вывести его, выдаёт 1?

    @MarkusD Куратор тега C++
    res2001, не риторический. Это стандарт. :)
    Что мы видим? std::cout << Bacteria::Print.
    Какая категория у Bacteria::Print? С учетом еще одного приведения - prvalue. А тип - указатель на функцию.
    За неимением подходящего оператора язык выполняет приведение и находит подходящий оператор.
  • Почему для самого класса статическая переменная использует правильное значение, но при попытке вывести его, выдаёт 1?

    @MarkusD Куратор тега C++
    Ланской Кирилл,
    почему, если вывести адрес указателя и адрес функции, у первого будет 16-ричная, возможно 16-циферное число, то тут просто один?

    Потому что значение указателя на функцию или статический метод - это сырой адрес с типом int (*)(). Подходящей перегрузки operator << для такого типа аргумента нет. А самой ближайшей перегрузкой с учетом неявного преобразования будет перегрузка для булева значения, которая и пишет нолик/единичку. Учитывая что адреса функций всегда определены, std::cout << Bacteria::Print сведется к std::cout << true.
  • Вектор и класс инициализация?

    @MarkusD Куратор тега C++
    Ланской Кирилл , не смотря на отмеченное решение, описание у тебя крайне непонятное и решение, скорее всего, не решает саму твою проблему. Даже если сняло симптомы.
    Тебе стоит привести конкретный код, чтобы с третьей стороны можно было убедиться в правильности приведенного решения.
  • Почему glew кидает ошибки при подключении glew32s.lib?

    @MarkusD Куратор тега C++
    Soft_touch_plastic, если ты сам решил вопрос без ответов здесь, то или удали его, или напиши свое решение и отметь.
    Не стоит вот так бросать вопрос.
  • Почему glew кидает ошибки при подключении glew32s.lib?

    @MarkusD Куратор тега C++
    Soft_touch_plastic , если говорить коротко, то не так ты делаешь всё. Прямо с момента, когда решил воспользоваться nuget-ом.
    У тебя изначальная задача какая?
  • Почему оператор `operator=` в классе `Vector` принимает `const init_l& l`, а не `const init_l l`, и как он работает с передаваемым сп. иниц.?

    @MarkusD Куратор тега C++
    unixilus, да не. На магию это не похоже. И работать код будет не также. У него внешний эффект сходится, но поведение вообще другое.

    m = {1, 2, 3, 4, 5};
    В этом месте создается локальный временный с типом списка инициализации.
    Если оператор определен как Vector& operator=(const init_l<T>& l), то в него будет передано размещение именно локального временного, правда с пометкой иммутабильности.
    Если оператор определен как Vector& operator=(const init_l<T> l), то локальный временный будет использован для инициализации аргумента оператора, с которым тело оператора и продолжит работать дальше.
    Разница большая. Непонимание этой разницы чревато тяжелыми ошибками.