Задать вопрос
  • Ошибка в Visual studio opengl. Как решить?

    @MarkusD Куратор тега C++
    Risdaw,
    мне не помогает, я уже во все папки скопировал и ничего все-равно ошибка

    Это значит что ты просто замусорил другие папки, так и не скопировав файл в нужную. Такое бывает когда берешься за дело без знаний об инструменте. А где же еще набраться знаний, как не в документации к инструменту?
    Если людей о каждой мелочи спрашивать, ты очень быстро останешься один.
    Выходная папка проекта задается в настройках проекта.
  • Как отключить вывод в шестнадцатеричном виде в Visual Studio 2022?

    Василий Банников, а эта настройка находится уже только в контекстом меню значения. И переключается она всегда раз и навсегда. Т.е. один раз переключил и все будет как положено.
    О чем автор спрашивает, в целом, не понятно. Если только не допустить момент, что автор студию поставил под другим пользователем и не имеет прав на изменение ее настроек. В этом случае настройки студии будут сохраняться только на период сессии. В остальных случаях настройки всегда будут применяться для всех следующих сессий.
  • Как отключить вывод в шестнадцатеричном виде в Visual Studio 2022?

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

    Sazoks, да нет, у тебя и правда много перемешано в вопросе. С первых строк видно что ты почти все неправильно понимаешь. И у тебя действительно несколько вопросов в одном.
    Почему тебе сейчас пишут в комментариях, а не в ответах. Это потому что нормально ответить на твой текст очень тяжело. Я и другие люди так просто экономим свое время.
    Подели свое обучение на три этапа. Первый этап - это программный параллелизм, системы планирования, системы разделения времени, системы пакетной обработки, системы реального времени. Второй этап - это архитектура вычислительных систем, SIMD, MISD, MIMD, топологии вычислительных систем и прочее (книга В. Г. Хорошевского). Третий этап - это аппаратный параллелизм современных процессорных архитектур, MESI, многоуровневый кэш и режимы параллельной обработки данных.
    Так у тебя должна будет выстроиться единая линия понимания параллелизма.
  • Почему в Java изменение интерфейса базового класса посредством модификации сигнатуры разрешено?

    @MarkusD Куратор тега C++
    Qubc, ява - это язык более высокого уровня, чем C++. Ява многое прощает своему пользователю и очень много думает за пользователя. Это одновременно и преимущество явы перед плюсами, и ее недостаток перед плюсами.
    Да, в яве у тебя такой вопрос не возник бы, но не потому что ты детально знаешь организацию памяти объекта в яве.
    В плюсах же у тебя такой вопрос возник именно потому что ты плохо знаком с поиском имен в C++.
    Ява не стимулирует тебя к более глубокому знанию.
    C++ - стимулирует, хоть и делает это весьма изощренно. :)
  • Почему в Java изменение интерфейса базового класса посредством модификации сигнатуры разрешено?

    @MarkusD Куратор тега C++
    Qubc, ответ отмеченный решением таковым не является. У человека там сплошная эзотерика написана.
  • Как правильно написать функцию принимающую универсальную ссылку?

    @MarkusD Куратор тега C++
    colorname , я правильно понимаю что свой ответ ты уже получил и правильное решение, решающее твой вопрос, тебе уже не нужно?
  • Как разрешить использование только конкретного наследуемого от интерфейса, не финального класса?

    @MarkusD Куратор тега C++
    rusyska55011, решишь задачу правильно, отвечу на твой вопрос.
    Для решения задачи у тебя есть два множества: множество "A" и множество "B". И есть интерфейс с функцией "virtual B Intf::Foo(A) = 0";
    В базе кода уже присутствует полсотни имплементаций этого интерфейса и больше тысячи мест использования имплементаций по интерфейсу.
    Твоя задача - создать еще одну имплементацию "Intf::Foo", для работы которой потребуется сперва как-то изменить как множество "A", так и множество "B".
    Вопрос: какие ограничения уже имеющийся код накладывает на твои возможности по изменению множеств "A" и "B"?
  • Есть ли смысл в бОльшем FPS, если частота обновления монитора 60 Гц?

    Вадим Соловьёв, пять лет с тех пор прошло, без малого.
    А можно узнать почему?

    Можно, конечно. Потому что сегодня мониторы с ограничением вертикальной синхронизации - это уже самый низ бюджетной ниши.
    FreeSync уже очень широко поддерживается и представлен аж несколькими версиями.
    G-Sync поддерживается не мене широко и тоже имеет несколько ревизий.
    Ну и главное. Мифом является то, что человеческий глаз различает не больше 24FPS. В том же 2018 году пошли активные обсуждения о переходе кинематографа на 96FPS. Разница между 60 и 96Hz заметна также хорошо, как и разница между 30 и 60Hz. Разительно заметна. Кинотеатры впечатлили зрителей более плавной и более живой картинкой.
    Разница между 120 и 240Hz заметна ничуть не хуже. Глаз человека продолжает улавливать изменения даже на такой частоте.
    Обработка ввода и рендер с частотой свободной развертки очень сильно меняет игровой опыт. Не в шахматах, конечно. Но даже медитативные игры с уклоном на созерцание дают иной опыт в этом случае.

    Выбор бюджетного офисного монитора для домашнего ПК - это вариант права каждого человека на личную ошибку.
  • Почему явная специализация невозможна?

    @MarkusD Куратор тега C++
    Acaunt, приведи ошибки из лога сборки, текстом, оформленным как код. Люди не читают с изображений.
  • Актуальны ли книги Александреску, Майерса и Саттера?

    @MarkusD Куратор тега C++
    colorname,
    1. Effective C++

    Утратила свою актуальность, уступив следующей книге.

    2. Effective Modern C++

    Актуальна. Последнее издание описывает не только тонкости C++14, но и довольно хорошо заглядывает в будущие стандарты.

    3. Effective STL

    Утратила актуальность, уступив изданиям от Вандервуда.

    4. More Effective C++

    Утратила актуальность, еще старше предыдущей книги и описывает немного другой STL.

    5. Exceptional C++

    Актуальна. Позволяет просто понять цель существования исключений в C++. Исключения в последних стандартах менялись не так сильно. После книги актуализировать знания до современного уровня труда не составит именно что за счет знаний из книги.

    6. More Exceptional C++

    Актуальна, как и предыдущая.

    7. Exceptional C++ Style

    Тоже актуальна.

    8. C++ Coding Standards

    Актуальна. Это - классика. К стандартам языка она не привязана.

    9. Modern C++ Design

    Актуальна. Про нее я уже говорил выше.
  • Актуальны ли книги Александреску, Майерса и Саттера?

    @MarkusD Куратор тега C++
    colorname, так. Давай еще раз повторю.
    Напиши, о каких именно книгах ты спрашиваешь. Не о авторах, а именно о книгах.

    Иначе я отвечаю твоими же словами:
    это не ответ на мою просьбу. Если упоминаете какие то референсы то и скидывайте конкретные примеры
  • Актуальны ли книги Александреску, Майерса и Саттера?

    @MarkusD Куратор тега C++
    colorname, тогда нужно было в вопросе максимально точно написать, о каких именно книгах идет речь.
    Потому что сейчас твой вопрос звучит именно так, как его прокомментировал Adamos. И ответ свой я дал именно на изложенную формулировку вопроса, а не на ту, которую ты для себя подразумеваешь.

    Напиши, о каких именно книгах ты спрашиваешь.
  • Актуальны ли книги Александреску, Майерса и Саттера?

    @MarkusD Куратор тега C++
    colorname
    но в этом и проблема что все книги упомянутых мною авторов датируются 2001-2004 годами

    Ну это немного неправда :)

    Прямо по приведенным мной ссылкам у авторов есть книги 2015, 2017 и даже 2022 годов.
    Они все на английском, в первоисточнике, но разве это проблема для программиста?

    Про книги до 2011 года у меня еще можно заметить некоторую осторожность. Я не отсекаю все книги до 2011 года.
    Например, у Вандервуда и Джосаттиса есть книга по шаблонам C++ от 2003 года, которую я порекомендую читать до второго издания 2020 года. Это потому что в том первом издании рассказывается именно скелет метапрограммирования в C++, а второе издание уже надстраивает над этим скелетом понимание современных шаблонов. Это очень важно, иначе есть риск не понять всю концепцию метапрограммирования в C++.
    Еще в качестве примера, у Йона Снейдера есть буквально замечательная книга по TCP. Эта книга от 2002 года и она актуальна по сей день. Я порекомендую именно ее вместо всяких современных изданий от сомнительных индусов.
    Ровно также я бы не отметал и Современное проектирование на C++ от Александреску. Опыт в этой книге актуален и сегодня.
  • Как зайти в геймдев с 3d и архитектурой?

    Artcomplex, 20 лет по профессии. Этим можно гордиться. Это дает повод уважать.
    Я - инженер, примерно столько же лет занимаюсь написанием кода игр. Я далек от арта и дизайна, поэтому не могу оценить твои навыки по приведенному изображению. Но через разговор сориентироваться могу.
  • Актуальны ли книги Александреску, Майерса и Саттера?

    @MarkusD Куратор тега C++
    Станислав Макаров, вот вообще очень редко. Но может быть это такая специфика C++ собеседований в геймдеве.
    Правило трех или вообще не обсуждали, или всего один раз за последние пять лет обсуждали как правило трех/пяти. Чаще речь заходит только о правиле пяти.
    В целом, я с тобой соглашусь, что очень много где люди до сих пор так и не свыклись с изменениями в C++11 и дальше. Мне с позиции соискателя иногда приходится поправлять собеседующих меня людей по разнице поведения до и после 11го стандарта. И я искренне радуюсь когда со стороны компании выступают хорошо подготовленные по последним стандартам люди, которые могут и мне на мои ошибки указать.
  • Как зайти в геймдев с 3d и архитектурой?

    Artcomplex , какие у тебя навыки в 2D и 3D? Есть коммерческий опыт применения этих навыков, сколько лет и на каких должностях?
  • Можно ли при вызове функции указать в него тип данных?

    @MarkusD Куратор тега C++
    Acaunt, я позволю себе дать ответы на твои вопросы, ни коим образом не отнимая право на них у автора ответа.

    1) Явное лучше неявного. Широкое использование auto только усложняет чтение кода, сбивает читателя с его мысли и заставляет задаваться совсем ненужными вопросами. Поэтому лучше указывать явные типы переменных. А обобщение использовать стоит только тогда, когда указание явного типа только затрудняет понимание кода при чтении.
    2) Интуитивно более понятен и удобен вариант автора ответа, за тем лишь исключением, что обобщенный тип результата в шаблоне - это как у собаки пятая нога. auto в типе результата буквально незачем. Объявление этого шаблона должно быть таким:
    template <typename TResult>
    TResult search (std::string str);

    Это снова потому что явное лучше неявного. Шаблоны читать итак нелегко, а когда там еще и обобщения накручены, то становится только сложнее. Обобщение следует использовать только в обобщенных функциях, а не в шаблонах.
  • Какую роль играют float и double в скобках?

    @MarkusD Куратор тега C++
    RabraBabr,
    а вообще корректно сравнивать между собой два вещественных числа?

    Корректным в C++ является только сравнение значений одного типа между собой. Если полагаться на неявное приведение при сравнении, то выстрелить себе в ногу становится очень легко. Не смотря на то, что C++ это все позволяет.

    yourtexthere, понимать совершаемое - это значит полностью усвоить информацию о совершаемом процессе, выработать навык безошибочного совершения процесса и иметь возможность на каждом шаге экспертно оценить правильность хода совершаемого процесса.
    Нет ничего страшного в том, что ты не понимаешь то, что делаешь. Нет ничего страшного в том, что ты признаешь очевидное для профессионала. Это - просто твои обстоятельства. Слова автора ответа - это просто изложение твоих обстоятельств в тексте.
    Изложенный тобой код действительно безграмотен и на самом деле он не работает так, как ты думаешь. Совпадение результата этого кода с библиотечным значением - чистая случайность.
    И для твоего уровня знаний - это нормально. Нечего стесняться своей безграмотности тогда, когда с ней нужно бороться через изучение и практику.
  • Почему доступ к элементам vector-а O(1)?

    @MarkusD Куратор тега C++
    Quark,
    Но если он основан на динамическом массиве, то как тогда выполняется вставка элементов?

    Через реаллокацию и предварительное выделение.
    Дело в том, что вектор хранит не совсем массив элементов. Он хранит массив слотов под элементы. Каждый такой слот имеет правильное выравнивание и размер для того чтобы хранить сконструированный элемент вектора.
    На памяти слота выполняется placement new в тот момент, когда в слоте создается элемент.

    При реаллокации все элементы перемещаются из слотов в старой памяти в слоты новой памяти большего размера.
    Предварительное выделение - это часть стратегии роста вектора. Вектор старается минимизировать количество реаллокаций и, следовательно, перемещений всех своих элементов через выделение большего количества слотов в моменты реаллокации.