• С++ Как правильно вернуть ссылку?

    @MarkusD Куратор тега C++
    A 82, правильным для работы со ссылками является такой пример:
    struct Test {
    	int val = false;
    	
    	const int& get_val(bool good, const int& default_value) const
    	{
    		return (good)? val : default_value;
    	}
    };


    Первое. Ты пишешь get, но возвращаешь ссылку на переменную. Написанное не соответствует смыслу. Если get, то ссылка на константу. Если ссылка на переменную, то access.
    Второе. get всегда подразумевает константный контекст, поэтому const для метода строго обязателен. Иначе снова написанное не соответствует смыслу.
    Третье. Значение по умолчанию должно быть общедоступным, чтобы с ним всегда можно было сравнить результат метода. Зашивая значение по умолчанию внутрь своего метода ты провоцируешь ошибки в своем же коде.
    Написано
  • Как можно починить std::thread?

    @MarkusD Куратор тега C++
    Jonhef , у тебя листинг ошибки в коде не соответствует приведенному коду.
    Конструктор копирования у потока удален.
    Ты же в своем коде выполняешь push_back в вектор потоков threads. И именно на это у тебя ругается транслятор.
    Написано
  • Как можно починить std::thread?

    @MarkusD Куратор тега C++
    Acaunt, не стоит писать если не уверен. Лучше занять свое время тем, чтобы сходить почитать про замыкания.
    Написано
  • Почему make file компилятора выдает ошибку, что функция переопределяется?

    Игорь, от тебя не требуется что-либо описывать своими словами тогда, когда вся терминология изложена в стандарте.
    Мой вопрос - это намек. Гадалок, экстрасенсов и беллетристов здесь итак хватает.
    Написано
  • Почему make file компилятора выдает ошибку, что функция переопределяется?

    Игорь,
    2) Реализация функции

    А подскажи источник информации, где этот термин раскрывается.
    Написано
  • Как вывести длинну переменной или массива?

    @MarkusD Куратор тега C++
    gifon ,
    но я 2 раза написал одну и ту же функцию, как это оптимизировать

    Зачем тебе это оптимизировать? Какую проблему ты этим решишь?
    Написано
  • Где искать учебные материалы по BNM?

    @MarkusD Куратор тега C++
    Евгений Мартынов, а, ну да. Ссылка в самом вопросе.
    Просто при переходе из уведомления открывается комментарий и тело вопроса не видно.

    В общем. BNM - это именно что библиотека того товарища. Терминологии такой нет.
    Сама эта библиотека для своей работы эксплуатирует интроспекцию типов, изначально заложенную в сам язык C#.
    Если тебе интересно как это устроено, то почитать стоит о рефлексии, интроспекции и контаминации. Первые два - широкие термины и почитать будет легко. Третий - узкий термин и тебе повезет если сможешь найти источники. Но уже по источникам из биологии тебе должно стать понятно чем именно является контаминация в разработке ПО и моддинге в частности.
    Написано
  • Где искать учебные материалы по BNM?

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

    @MarkusD Куратор тега C++
    misterKno, ну оффсет как-то и ищи. Про Ст.272 УК РФ только не забывай еще. Внезапно так по ней можно уехать в санаторий на Ямал в формате до 7-ми лет без права вернуться досрочно. Да, за банальный взлом игрушки. Кто там будет разбираться в серьезности намерений, когда твои действия так или иначе вредят бизнесу.
    Написано
  • Где искать учебные материалы по BNM?

    @MarkusD Куратор тега C++
    Евгений Мартынов, ну вот ты написал:
    инструменты на c++ для модификации игр ( классы, поля, dll)

    Что конкретно ты определяешь этим набором слов? Определенно люди тебя не понимают. Интересно будет узнать источники информации, из которых ты получил свое знание о значении этого набора слов.
    Написано
  • Где искать учебные материалы по BNM?

    @MarkusD Куратор тега C++
    Евгений Мартынов, ок. И что же это за набор слов таких?
    Написано
  • Как начать разработку оконных приложений?

    @MarkusD Куратор тега C++
    PR1001, все именно так. Ты непонятно объясняешь.
    Сейчас твой вопрос больше напоминает проблему XY. Это все тебе не нужно.

    Тебе не нужны какие-то там пакеты чего-либо. Тебе не нужны какие-либо библиотеки. Тебе на твоем уровне вообще рано думать о кроссплатформе, для тебя это неподъемная и необъятная задача. Ты не справишься. Ты задумываешься о кроссплатформе, как о какой-то базе. А это не так. Кроссплатформенность - это лишь далекое следствие грамотной топологии проекта, грамотной инфраструктуры проекта, грамотной макроархитектуры проекта, грамотной архитектуры элементов проекта и, в особенности, экспертных знаний всех языков, на которых написан код проекта. Не только C++ и не только пиона, обычно это от пяти языков.
    Сейчас твоя задача - взять Visual Studio, именно ее и вообще ничто больше, и выштудировать все ее возможности вдоль и поперек.
    Все возможности - это и C#, и C++/Cx, и UWP, и COM тоже, а не просто возможности C++ и Win32 API.
    Лет на 5 следующих тебе этого фронта задач хватит.

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

    @MarkusD Куратор тега C++
    PR1001, а под Apple Mac ты, выходит, планируешь работать без Apple XCode?

    Чем для тебя обосновано требование обязательной и полной отвязки от Visual Studio?
    Написано
  • Как начать разработку оконных приложений?

    @MarkusD Куратор тега C++
    PR1001 , ты слишком широкий вопрос задаешь.
    Уточни свои навыки и цели самой своей разработки. "Полный ноль" не поясняет, точнее нужно.
    Зачем тебе именно кроссплатформа?
    Написано
  • C++: Как вывести один тип в зависимости от другого типа в шаблоне?

    @MarkusD Куратор тега C++
    A 82 , а объяснить, почему твое решение для тебя сейчас работает, сможешь?
    Просто к сведению. Тут сейчас нет ни одного ответа на твой вопрос.
    Написано
  • Есть ли фриланс на С++ с нуля?

    @MarkusD Куратор тега C++
    Xart-kod, у тебя стратегия неправильная.
    Давай я не буду писать полноценный ответ, а просто коротко тебе обрисую.
    Для собеседования со мной джун уже должен идеально знать стандарт языка. Точка.

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

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

    @MarkusD Куратор тега C++
    Артём Белых, да. Код просто не годится.
    У тебя сокеты должны быть одноранговыми. Этапов в приложении не должно быть.
    Сейчас у тебя сперва этап прослушивания и соединения, а следом - этап взаимодействия. Это должны быть не этапы, а независимые друг от друга реакции на состояние сокетов.
    Если в прослушивающем сокете есть запросы на соединение, должна запуститься функция установки соединения и добавления новой сессии в список сессий.
    Если на сокете соединения есть что прочитать, должна запуститься функция сетевой коммуникации, которая вычитает трафик в циклический буфер и разберет его на пакеты/команды с последующим запуском уже их обработчиков.
    Сессии у тебя могут быть разные. Чат-сессия, файловая сессия, голосовая сессия, передача видео и так далее. Соответственно и обработчики трафика в рамках сессии тоже могут быть разные. А могут быть и одинаковые, если ты правильно поймешь модель OSI. И в любой момент времени у тебя получится так, что сразу несколько сокетов будут иметь доступный входящий трафик. И ты уже сразу будешь знать какие обработчики каких сессий нужно вызвать.
    Понятно тебе станет и то, как на базе сокетов реализовать модель вытесняющего взаимодействия. А следом ты сможешь разобраться и с тем, как с одного потока дальше перейти к пулу потоков со все той же моделью вытеснения.

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

    @MarkusD Куратор тега C++
    Артём Белых, не, вообще не так.
    Тебе стоит почитать Йона Снейдера: "Эффективное программирование TCP/IP". Почитаешь - поймешь всю глубину своего незнания в настоящий момент.

    Тебе не нужно по потоку на каждый сокет сервера. Тебе нужно настроить сокеты и задать такую архитектуру сервера, при которой он в один поток будет обрабатывать тысячи подключений без особой нагрузки на ядро процессора.
    У меня еще в нулевых на однопоточном ММО-сервере жили до 3к уникальных игроков в сутки. Средний онлайн в сутки был больше 1к, а общая популяция игроков переваливала за полмиллиона. И это все работало чисто на неблокирующих TCP-сокетах и select ровно в одном потоке.
    Написано