Задать вопрос
  • Почему для самого класса статическая переменная использует правильное значение, но при попытке вывести его, выдаёт 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. возможно это проблемы на стороне удаленного хоста, тогда жаловаться надо его владельцам

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

    @res2001
    Kirgus,
    А если указан несуществующий путь, то ты не сможешь внести другие правки в свойства этого ярлыка. Винда просто не позволит применить изменения...

    Есть такое.
    Программно можно создать ярлык можно с помощью WSH (JS/VBS) скрипта, там есть соответствующий объект. Можно ли поправить свойства существующего ярлыка - не знаю. Наверное есть соответствующие средства и в power shell.
    Но! Скажите нахрена вам в ярлыке не существующая рабочая папка? Если не знаете что указать - укажите %SystemRoot%\system32
    В конце концов, создайте этот путь временно, поправьте ярлык и удалите.
    Написано