• Как стереть элемент с помощью vector.erase()?

    @MarkusD Куратор тега C++
    arteskin , эта идиома называется erase-remove [?].
    Свое условие ты можешь задать при использовании std::remove_if [?].
  • Как правильно масштабировать 2d объекты в opengl?

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

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

    shibal,
    Но если батарея сдохла, то разве ноут не должен был продолжить работу, так как он был подключен к сети?

    Конечно. Батарея в ноуте только заряжается при подключении БП и никак не участвует в его работе до отключения БП.

    Если все хорошо с ноутом и дело только в батарее, значит по идее если я сниму батарею, то ноут должен включиться разве не так?

    Нет, он может находиться в защите питания.

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

    Если ноут находится в защите питания, его оттуда достать можно только особым образом. Детали можно узнать в сервисном руководстве к ноуту. Но режим защиты питания сперва еще надо распознать. Ноут может быть и в режиме защиты электроники, тогда надо найти неисправный компонент и удалить его. Так же наперво тебе надо, все-таки, правильно определить работоспособность БП.

    Причин может быть уйма. Думаю, тебе лучше все-таки в сертифицированный СЦ обратиться. За деньги любой СЦ выполняет любые работы.
    Я не получаю от тебя нужной информации, поэтому мне больше нечего тебе предложить.
  • Ноутбук ни на что не реагирует. В чем может быть причина?

    shibal,
    Амперметром

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

    На моем ASUS G750JS от 2013 года батарея померла в 2018м году. Это даже при условии того что я очень бережно к ней относился. Ноут же после этого просто работал в режиме ПК, т.е. исключительно от сети. Это нормально.
    Другая штука - это почему твой ноут однажды внезапно выключился. Если внезапно, то это может быть в результате защиты от поломки электроники. Тот же G750JS в 2016 году начал отключаться потому что при деформации клавиатуры от печати стала прогибаться плата оперативной памяти под клавиатурой. Я заменил оперативу и переместил обе плашки вниз. После этого проблем с выключением больше не было.
    Моя знакомая как-то смогла свой Sony VAIO увести в защиту питания. В этом режиме, пока не сделать нужное сервисное колдунство, ноут напоминает кирпич. Но я нашел сервисное руководство к ноуту и вынул тушку из этой комы. Режим защиты питания у твоего ноута тоже есть. Обычно такой кирпич остается только в авторизованный СЦ нести.
    БП все того же G750JS легко уходит от ответственности питать ноут если видит что к его выходу ничего не подключено. Образумить БП возможно только включив его с нагруженным выходом в сеть. Без подключения к ноуту, иными словами, БП питание на выходе не показывал вообще.

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

    shibal , назови точную модель этого ноутбука.
    Я проверил зарядное устройство и оно получает питание из розетки, но не передает его в ноутбук.

    Как и чем конкретно ты это проверил?
  • Почему не работает dynamic_cast?

    @MarkusD Куратор тега C++
    maaGames, там дело в том, что объявление шаблона находится в .h, а вот определение - уже в .cpp.

    syxme, это недопустимо. Определение шаблона всегда должно быть видно из места его инстанцирования.
    Если ты объявил шаблон в заголовке, определить его ты тоже должен в заголовке. Или, как минимум, непосредственно перед инстанцированием.
  • Почему не работает dynamic_cast?

    @MarkusD Куратор тега C++
    syxme , header.h и code.cpp, все именно так?
    И это шаблон глобальной функции?
  • Как правильно написать template функцию для контейнеров?

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

    @MarkusD Куратор тега C++
    Wataru, все комментарии относятся только к твоему примеру, который и нуждается в SFINAE.
    Ты точно увидел пример? Точно видел выдачу транслятора?
    Решить-то через SFINAE можно, но зачем? Достаточно просто знать правило перегрузки и выбора шаблонов.
  • Как правильно написать template функцию для контейнеров?

    @MarkusD Куратор тега C++
    Wataru, стоп-стоп.
    template <class Container>
    void print(const Container& c, string sep=" ", string end="\n")

    Вот этот код не решает задачу автора.

    А в отношении моего кода ты не прав. Давай на примере рассмотрим.
    Выбор шаблона перегрузки выполняется от более конкретного шаблона к менее конкретному.
    Шаблон
    Print( const TStorage<TItem, TAllocator>& storage )
    имеет большую конкретику, шаблон Print( const TValue& value ) не вступает с ним в конфликт, т.к. является менее конкретным, т.е. более общим. Описанной тобой проблемы у меня нет.
    На деле же у меня добрая половина всего фреймворка пронизана этим правилом. Продемонстрированные мной утилиты контейнеров - только одна небольшая часть. И все находится в рамках стандарта.
  • Как правильно написать template функцию для контейнеров?

    @MarkusD Куратор тега C++
    Wataru, рабочий код находится по ссылке в единственном комментарии под вопросом.
    Я честно не понимаю почему автор проигнорировал это.

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

    @MarkusD Куратор тега C++
    Wataru, и зачем весь этот код нужен?
    Неужели ты предлагаешь задействовать SFINAE там, где достаточно перегрузки с выводом типа параметров?
  • Как правильно организовать два 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++ не существует. Тут ты написал простую шаблон функции, первым параметром в который при инстанцировании надо передать ссылку на размещенный контейнер, к которому далее ты не можешь обратиться, т.к. параметр у тебя анонимный.