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

    @res2001
    Плюсы может и не самая актуальная тема, но вполне востребованная на рынке. Гораздо востребованней того же Rust. У каждого ЯП свои ниши, где его обычно применяют. А поэтому именно в этих направлениях для языка существую отработанные инструменты (библиотеки), дающие хороший результат.

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

    В С++ никогда не было централизованной коллекции библиотек, пакетного менеджера и т.п. Стандартная библиотека есть и она достаточно не плоха, но функционал у нее ограничен (по сравнению с питоном из коробки), фактически там только низкоуровневые базовые функции и алгоритмы. Для подключения более сложного функционала, типа веб сервера, нужно либо писать его самому, используя возможности ОС, либо подключать свободные сторонние библиотеки. Свободных библиотек для С/С++ в исходниках с различным функционалом много.

    Если посмотреть, например, на ЯП Си, то там стандартная библиотека еще более скудная, чем в С++, но еще больше свободных библиотек в исходниках. Библиотеки, написанные на Си можно на прямую использовать на С++. В них, конечно, не будет ООП, но можно самому завернуть использование библиотеки в класс-обертку. Наоборот, для использования С++ библиотеки в Си нужно, чтоб этим озаботился разработчик библиотеки и предпринял необходимые действия.

    В связи с вышеизложенным, а так же из-за того, что С++ более низкоуровневый язык, стоит не повторять задачи на питоне, а брать более простые задачи. Можешь купить толстую книгу по С++ для начинающих, там обычно бывают задачи по темам, выполняй их. Выполнение более простых задач, применение решений простых задач для решения более сложных поможет развить очень полезный для программиста навык декомпозиции. Так же есть сайты, где предлагают решать задачи по программированию, можешь решать задачи там.
  • Почему для самого класса статическая переменная использует правильное значение, но при попытке вывести его, выдаёт 1?

    @res2001
    Евгений Шатунов, Полтергейст какой-то :-)
    Почему ближайшее преобразование адреса это bool, а не в size_t например?
    Риторический вопрос.
  • Вектор и класс инициализация?

    @res2001
    forward declaration поможет, только если в векторе будет ссылка или указатель на класс.
    Если в векторе предполагается размещать класс "по значению", то вариантов нет, т.к. что бы выделить память под вектор нужно иметь уже полное описание класса, а что бы полностью описать класс нужно полное описание вектора. Выполнить оба условия для вашего класса в рамках С/С++ не возможно.
    Смотри ответ maaGames
  • Почему Ctrl + D не дает коду выполняться дальше, а просто завершает программу?

    @res2001
    Вообще запускать для отладочных целей лучше всегда во внешней консоли, т.к. IDE настраивает свою встроенную консоль под себя и могут проявляться самые разные не типичные эффекты, кроме того IDE скорее всего перехватывает ввод/вывод в консоль и возможно как-то его фильтрует.
    То же касается и винды.
  • Почему Ctrl + D не дает коду выполняться дальше, а просто завершает программу?

    @res2001
    oblepyx, Хотя нет, наврал. get в случае EOF возвращается и выставляет флаг eof, который и проверяется в cin.eof().
    Я бы вместо eof проверял бы cin.good() - он проверяет на любые ошибки, а не только eof.
    https://en.cppreference.com/w/cpp/io/basic_istream

    А вообще исключения перехватываются с помощью try/catch. Почитай что-нибудь про исключения, если пишешь на плюсах это знать надо.
  • Почему Ctrl + D не дает коду выполняться дальше, а просто завершает программу?

    @res2001
    Видимо исключение в ходе cin.get и вылет программы из-за него.
  • Почему оператор `operator=` в классе `Vector` принимает `const init_l& l`, а не `const init_l l`, и как он работает с передаваемым сп. иниц.?

    @res2001
    unixilus,
    То есть C++ автоматически передает

    Да, при вызове, передача аргумента по ссылке ни чем не отличается от передачи аргумента по значению. Ссылка или значение - определяет вызываемая функция, а не вызывающая.
    В этом смысле с указателями понятнее - тут надо явно передавать указатель. Отличаться от передачи по значению будет как вызывающий код так и вызываемый.
  • SDL и Valgrind, как проверить утечки в своем коде?

    @res2001
    Рискну предположить, что утечка в SDL связана с тем, что ты чего-то не освобождаешь в своем коде. Просто valgrind не настолько умен, чтоб определить еще и точную причину утечки - он просто показывает, что вот тут была выделена память (в SDL при захвате ресурса) и она не была освобождена, т.е. ты ресурс не освободил. Виновник утечки не SDL, а твой код.
    С утечками памяти часто бывает так - место утечки ты установишь инструментарием (valgrind и т.п.), но причину должен найти самостоятельно. Иногда найти причину бывает довольно трудно.
  • Как разумно поставить себе начало в программировании (C++ и C#)?

    @res2001
    Александр,
    ты слишком много размышляешь и мало делаешь. Нет какого-то оптимизирующего волшебства, который может значительно сократить твой путь. Ты должен писать код. Много кода.

    В точку! Хватит размышлять и мечтать. Начинай писать код. Умение программировать само не придет, его надо тренировать.
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    @res2001
    Drovosek01, Мой ответ уже есть, просто выберите его решением.
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    @res2001
    Drovosek01,
    Мне нужен аналог функций как в других языках

    Как вариант функции можно выделять в отдельный командный файл и так же его вызывать через call. Работает аналогично функциям.
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    @res2001
    @echo off
    
    set "path_bin_1=d:\TEMP\test.exe"
    call :testname "%path_bin_1%"
    
    echo "%path_bin_1%"
    echo "%filename%"
    
    pause
    goto :eof
    
    :testname
    echo %~1
    set file=%~1
    set filepath=%~dp1
    set filename=%~nx1
    goto :eof
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    @res2001
    Drovosek01,
    Мне это не нужно. Мне нужен аналог функций как в других языках

    Метка-функция - это и есть аналог функции в других языках, другого тут не дано. Хорошо хоть это есть
    это только часть скрипта

    У тебя после goto:eof идет вывод и пауза - ну они не работают в этом случае.
    Конкретно по приведенному фрагменту - делай как я сказал.
    Хочешь подсказку по полному скрипту, покажи его весь.
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    @res2001
    Drovosek01, Просто удали эту строку, она тут не нужна, если ты хочешь получить вывод и паузу
  • Зачем в cmd bat (командной строке) создали режим enabledelayedexpansion?

    @res2001
    Стандартные переменные %VAR% такого не могут.

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

    @res2001
    Kirgus,
    но официальный установщик уже давно не работает с Белорусских и Российских IP(((

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

    Кстати qt creator и его сборки есть на гитхабе. Можно просто брать от туда свежачок. Гитхаб пока не забанили для нас :-)
    https://github.com/qt-creator/qt-creator/releases
  • Как написать вариадический оператор по SFINAE для умного указателя на Т, который может быть функцией?

    @res2001
    Для защиты от выгрузки DLL ваш умный указатель должен так же принимать в параметре и дескриптор открытой DLL. При вызове проверять средствами ОС, существует ли до сих пор дескриптор. Если не существует, то указателю можно присвоить какое-то не корректное значение и уже в следующий раз ничего не проверять.

    То же самое можно сделать, написав функцию обертку над функцией DLL, в которой будет все это проверяться.

    Обычно проще один раз грузить DLL при старте и получать указатели на функции, которые будут валидны все время выполнения программы. Тогда можно в принципе не заморачиваться на какую-то сложную защиту.

    Если же вам нужен именно вариант с загрузкой/выгрузкой DLL в ходе работы приложения, то надо что-то придумывать. Но отталкиваться надо не от указателей на функции, а от дескриптора библиотеки. Т.к. если дескриптор не валиден, то все указатели на функции этой библиотеки становятся не валидны автоматически.
    По идее, тут надо логикой программы гарантировать, что если библиотека была выгружена, то уже никогда не будет вызвана функция библиотеки. Другими словами, если в программе еще нужна функция из библиотеки, то библиотека не должна выгружаться. Например при получении адреса функции можно увеличивать счетчик ссылок дескриптора DLL, когда функция становится не нужной - счетчик уменьшать. Когда счетчик ссылок DLL будет 0 - библиотеку можно выгрузить.
  • Как написать вариадический оператор по SFINAE для умного указателя на Т, который может быть функцией?

    @res2001
    Павел Соколов, По моему этим вариантом вы проблему вообще ни как не решаете.
    DLL может быть выгружена, а указатель при этом останется, только он теперь будет указывать в не распределенное пространство памяти. И вызов функции через этот указатель приведет к падению программы.
  • Где в Windows хранятся свойства ярлыков?

    @res2001
    Kirgus, Рабочая папка в ярлыке при запуске программы преобразуется в текущий каталог в окружении запущенной программы. Но если путь не существует, то система подставляет какой-то свой (предположительно %SystemRoot%\system32). И если программа прекрасно работает с "каким-то" путем, то она скорее всего будет так же прекрасно работать с любым другим путем. Думаю нет смысла беречь этот не существующий путь. Вы можете скопировать оригинальный ярлык куда-нибудь, рабочий ярлык исправить и поработать какое-то время. Когда убедитесь, что все нормально, можно и копию будет грохнуть. Работа нормально написанной программы не должна зависеть от текущего каталога, т.к. этот фактор всегда может поменяться по независящим от программы причинам.

    На сколько я знаю Qt Creator к системе не привязывается и вроде бы его можно просто переложить в другое место и он будет работать от туда. Хотя я таких экспериментов не проводил. Предпочитаю ставить в другом месте с нуля. Даже если после переноса что-то не заработает, то можно запустить Maintenanse Tools и выполнить восстановление. Как-то так вижу.
  • Какие самые большие пакеты пропускает ping в windows и как задать минимальную задержку между отправкой?

    @res2001
    Сайты открываются через раз

    Чем вам помогут большие пинги и уменьшение задержек на отправку? Кроме того в винде нельзя отрегулировать скорость отправки пингов. Можно задать только время ожидания ответа.

    Просто запустите вечный пинг (опция /t) и посмотрите как плавает время.
    Если случаются большие провалы по времени ответа или вообще пропадание ответов, то возможны проблемы:
    0. в вашем оборудовании
    1. у провайдера, пожалуйтесь прову на большие задержки, пусть исправляет ситуацию.
    2. возможно это проблемы на стороне удаленного хоста, тогда жаловаться надо его владельцам

    Проведите опыт для нескольких разных узлов в интернете, чтоб исключить вариант с проблемами на удаленном хосте.