Задать вопрос
  • Как правильно организовать два Solution с общим проектом, чтобы...?

    @MarkusD Куратор тега C++
    wlastas,
    как отметить ваш пост в качестве решения?

    А никак. :)
    Если бы я хотел решение на этот вопрос, я бы сразу написал его как ответ. Но я этого не сделал по объективным причинам.
    Если ты разобрался и решил свой вопрос, у тебя есть возможность написать ответ самостоятельно и отметить его решением.
  • Как правильно организовать два Solution с общим проектом, чтобы...?

    @MarkusD Куратор тега C++
    wlastas, VS 2016 не существует.
    И переменную в настройках можно поставить не только прямым редактированием формата проекта.
    Я не понимаю, о каких бекапах ты пишешь. Если что-то уже позиционируется от солюшена, это уже хорошо и главное - чтобы солюшены находились просто в разных папках. Если что-то не должно попадать в VCS, то это надо просто добавить в игнор VCS.
  • Конвертация runtime переменной в "compile time константу" в частности для иниц. массива фиксированного размера в С++ (в G++ работает)?

    @MarkusD Куратор тега C++
    wlastas, я думаю что даже там где это проходило трансляцию, оно не работало как положено потому что в этом коде Buffer Overrun и Undefined Behavior. Этот код - одна сплошная ошибка.
    Где именно, я тебе уже не подскажу. Прости, но я не помогаю писать читы и ботов.
  • Конвертация runtime переменной в "compile time константу" в частности для иниц. массива фиксированного размера в С++ (в G++ работает)?

    @MarkusD Куратор тега C++
    wlastas, мой комментарий - это не ответ, а больше уточнение для тебя. Дальше ты сам можешь подойти к решению.
    На десктопной платформе 60-100 раз в секунду - это не высоконагруженность. Ты можешь спокойно пользоваться вектором и это никак не скажется на производительности. Куда большую проблему может создать именно этот char buffer[l+1];, т.к. выделяется он на стеке, состояние которого и оставшийся размер ты не знаешь.

    Между тем. Изучи _malloca()[?]. Это - аналог alloca()[?] из GNU. Но к работе с _malloca() тебе нужно подойти ответственно, Майки снова начудили с ее интерфейсом, а все той же alloca() пользоваться решительно не рекомендуют через ругань транслятора.
  • Конвертация runtime переменной в "compile time константу" в частности для иниц. массива фиксированного размера в С++ (в G++ работает)?

    @MarkusD Куратор тега C++
    wlastas , char buffer[argc+1]; - это VLA, который является стандартным только для C99.
    C++ до 17го стандарта поддерживает лишь C98. С++17 поддерживает C11, в котором VLA является необязательным и имеет слабую поддержку.
    На C++ такой код является нестандартным и не пройдет трансляцию.

    constexpr int bl = argc+1;
    Это - вообще нонсенс. constexpr существует и работает только во время трансляции кода. Откуда транслятору знать здесь и сейчас, с какими параметрами результирующий код будет выполняться на потенциальных миллиардах целевых устройств?
  • Разработка игр для андроид на языке С++?

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

    Периферия доступна как стандартное низкоуровневое устройство. Проблем доступа к ней нет. Для работы с сетью есть сокеты Беркли. Для работы со звуком есть OpenSL и упрощающие надстройки. Для работы с пресловутым графическим ускорителем есть Vulkan и OpenGL. Все это напрямую доступно из библиотек C/C++ и никак не касается рантайма виртуальной машины. На JNI писать нет никаких проблем при наличии достаточной прослойки для JNI.

    соответственно и разрабатывать лучше/легче на java

    Легче - на Kotlin. Привычнее - на Java. Это - разные вещи.

    точнее под виртуальную машину dalvik virtual machine

    DVM в последний раз был замечен еще в Android 4. Далее DVM был вытеснен ART. Сегодня DVM в Android, в явном виде, больше нет. DEX на современных устройствах больше не выполняется.

    это машина исполнения скомпилированного кода java

    Это - неправда. DEX представляет собой пакет исполняемого кода для DVM, а не JVM. DVM никогда не исполнял опкоды JVM. Иначе Oracle засудил бы Google к чертям, а не жалко пытался бы подлезть к родству между JVM и DVM через написание кода на Java.
    Трансляторы других языков выполняют трансляцию кода во все тот же DEX.
  • Как правильно написать template функцию для контейнеров?

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

    Кажется я понял твою идею. И, нет, extension method в C++ не существует. Тут ты написал простую шаблон функции, первым параметром в который при инстанцировании надо передать ссылку на размещенный контейнер, к которому далее ты не можешь обратиться, т.к. параметр у тебя анонимный.
  • Разработка игр для андроид на языке С++?

    @MarkusD Куратор тега C++
    Adamos, или это - финальный толчок к осознанию того, что для разработки игр нужно образование, в которое надо вложить свои время и усилия? :)
    Все верно. Требуемая литература вся сплошь на английском и одним ее чтением не обойтись. Требуется еще и общение с сообществом, которое, внезапно, тоже англоговорящее. На наш геймдев надежды особой нет.
  • Как правильно организовать два Solution с общим проектом, чтобы...?

    @MarkusD Куратор тега C++
    wlastas, не забывай делать упоминания пользователей. Иначе твои слова не видно. Я сейчас в твой вопрос зашел просто потому что увидел отметку о решении.
    Выбранное решение не решает твой вопрос. Оно просто обходит проблему, которую я обозначил тебе.

    У тебя конфигурация сборки неправильная. Твои Intermediate и Output Path должны быть строго относительно $(SolutionDir). Никаких абсолютных путей. Никаких путей относительно проекта. Никаких висящих в воздухе путей. Все должно быть строго от корня солюшена.
    В этом случае один проект, открытый в двух солюшенах, будет иметь разное рабочее окружение. Только так проект не будет мешать сам себе в разных солюшенах.
  • Почему Stack подчеркивает красным?

    @MarkusD Куратор тега C++
    edward_freedom, гопник пробует в плюсы, похоже :)
  • Почему Stack подчеркивает красным?

    @MarkusD Куратор тега C++
    Hiroshima , что конкретно здесь написано?
    char pop;
  • Как правильно организовать два Solution с общим проектом, чтобы...?

    @MarkusD Куратор тега C++
    wlastas , какие конкретные значения у тебя находятся в настройках Intermediate и Output Directory всех трех проектов?
  • Что такое криптор и дескриптор класса в C++?

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

    boogime, с этим вопросом тебе уже лучше самостоятельно разобраться. Дипломы ведущих немецких ВУЗов должны признаваться на территории всей Европы. Про остальной мир тебе стоит уже самому узнать.
  • Почему C/C++ проекты очень долго компилируются?

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

    boogime,
    какой у меня риск потерять время в пустую

    Это зависит только от тебя. Уделишь подготовке должное внимание и подойдешь к этому со всей ответственностью - у тебя все безусловно получится. Опять же, если у тебя ничего не выйдет, то, благодаря тому что ты все делал только сам, у тебя не будет возможности свалить провал на кого-то еще. А любая неудача - это, прежде всего, ценный опыт.
    Если с успехом отучишься в Германии, возвращаться на родину тебе будет уже незачем. Ты сможешь отсобеседоваться туда, куда лично я раньше только мечтал попасть. Если провалишься и не сможешь, вернешься на родину и получишь специальность в менее жестких условиях родного образования.

    я очень боюсь что не осилю обучения на немецком

    Бояться чего-либо полезно, страх показывает тебе твою слабость. Но со страхом нужно бороться. Твой страх решается поэтапно, проверками. Можешь ли ты съездить на территорию потенциального обучения просто как турист через турфирму? Можешь ли ты съездить туда без тура, как самостоятельный турист? Можешь ли ты прожить один на той территории в течении выходных? А неделю? И чтобы поэтапно начинать общаться с местными людьми.
    Посмотри, в качестве примера, как Дима Шамов начал жить в Японии. Быть может у тебя появятся идеи как использовать его опыт в твоей ситуации.
  • Какую книгу выбрать для изучения компьютерной графики?

    boogime, полезный ответ. :)
    Режим труда и отдыха непреложен если ты хочешь остаться здоровым в долгосрочной перспективе. Большинство тяжелых состояний человека за сорок закладываются еще в возрасте до 24х лет.
    Загрузка в твоем возрасте нужна на 100% в день, это верно. Более того, ты можешь просто поверить мне, сейчас тебе нужна цель и уверенность в движении к ней. И это очень хорошо что ты сам выбрал цель и решил вот так устроить свою жизнь. Значит ты уже прошел этап самоопределения, а это для тебя хорошо.
    Расстановка приоритетов и планирование [1], [2], [3], [4] - это сложная, но посильная, задача. Этому тоже нужно учиться.

    Мои личные интересы позволяют мне заражать ими других людей. Так что я нередко вижу как кто-то из друзей таки решил попробовать то, чем я грежу, но за что не берусь. Это круто. Но у меня не хватает на это времени.
    Более того, я не в силах поддерживать свою вовлеченность в течении длительного времени. Поэтому мне приходится регулярно отказываться от большей части своих интересов ради своего здоровья и отдыха. В другое время я отказываюсь от одних интересов ради других. Все интересные дела переделать невозможно.
    Просто расставляй приоритеты, меняй интересы время от времени, старайся регулярно держать на стадии максимального выполнения те задачи, от которых сильно зависит твое будущее. Программирование, пока, не получится отнести к таким задачам, хоть и отказываться от посильной ежедневной практики я тоже не советовал бы. В профильном ВУЗе тебе дадут такие знания, что ты рискуешь ощутить легкую бесполезность потраченного сейчас на программирование времени если будешь заниматься им больше достаточного или в ущерб здоровью.
  • Почему C/C++ проекты очень долго компилируются?

    @MarkusD Куратор тега C++
    zeuss56, ну ладно. Сольем тогда тему на требования от балды. :)

    Транслятор C++ не делает вообще всего того, о чем ты написал в вопросе. Кеширование процесса сборки у транслятора есть сразу на нескольких уровнях. За счет этого кеширования достигается максимальная производительность параллельной сборки.
    Про оптимизации во время трансляции ты явно не понимаешь. Оптимизации есть разные. Есть оптимизации предпочтений (это убрать, важно время вызова, память сжать, SSE/AVX использовать) и они отключаются. А есть понятие неопределенного поведения, позволяющее выполнять асимптотические оптимизации кода вне зависимости от предпочтений. this никогда не может быть nullptr, иначе это UB. int никогда не переполняется, иначе это UB. Понятие UB позволяет очень жестко оптимизировать код. Еще к таким асимптотическим правкам относится удаление неиспользуемых объектов, участков недостижимого кода, развертка циклов или свертка планарных конструкций. Эти оптимизации не отключаются, т.к. они заложены в сам язык, в процесс трансляции. Еще к таким оптимизациям относится перестановка блоков бинарного кода для случаев, когда результат не меняется, а вот бранчинг кода резко снижается.

    Неграмотная организация и слабая макроархитектура преокта могут катастрофически сказаться на времени сборки. На моем 9900K сборка моего фреймворка полностью с нуля занимает 1 минуту. Сборка же известного коммерческого движка со сравнимым объемом кода ровно в том же окружении занимает 25 минут просто потому что в этом движке очень слабая организация проекта и полностью отсутствует (с моей т.з.) макроархитектура.
    И это при том, что коммерческий движок использует и PCH, и Incredibuild, и prebuilt library, а я полностью весь свой фреймворк под все платформы собираю целиком из исходников, без PCH и исключительно стандартными средствами сборки для целевой платформы.

    Код C++ никогда прямо не отображается в asm, но используется как указание того, какое поведение бинарного кода необходимо разработчику. И ключевым тут является именно то, что код C++ выступает как инструкция, а не как представление бинарного кода. Без квалификации в трансляторах с этой темой так просто не разобраться.
  • Почему C/C++ проекты очень долго компилируются?

    @MarkusD Куратор тега C++
    zeuss56, моё "Я тебя не понимаю" относится именно к обоснованию твоих требований. Я не понимаю, от каких аналогов (может быть в других языках?) ты отталкивался при формировании вот этих своих требований.

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