Задать вопрос
  • Почему возникает ошибка C2512 в конструкторе с std::initializer_list?

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

    Это замечательно, только неправда. Ошибки тебе пишет именно транслятор. С компилятором ты вообще никак сейчас не взаимодействуешь.

    По сути дела. У тебя нет знаний о процессе конструирования объекта. Из-за этого ты не понимаешь что в момент начала выполнения тела любого конструктора type arr[N]; у тебя уже сконструирован. И транслятор тебе сообщает именно об этом. А подходящего конструктора по умолчанию c_function у тебя в коде вообще нет. Он удален по умолчанию. Потому что ты так написал, чтобы он стал удаленным по умолчанию.

    Wataru в своем ответе тебе все правильно описал. И проблему, и метод решения проблемы.
    Я с деталями и уточнениями подключусь если для этого будет смысл.
    Написано
  • Почему возникает ошибка C2512 в конструкторе с std::initializer_list?

    @MarkusD Куратор тега C++
    Павел Соколов , ты настолько умело обрезал код, что сейчас конструктива в вопросе нет абсолютно.
    У тебя две структуры? Показывай полностью. У тебя какой-то код не транслируется? Показывай весь блок кода полностью. У тебя транслятор пишет ошибку? Показывай ее полностью, весь вывод ошибки от места начала и до описания ошибки.
    Когда у тебя проблема, стесняться и прятать что-либо уже бессмысленно. Тут как у врача, краснеть и мяться уже поздно.
    Написано
  • Обход блокировки?

    И хорошо что не понимаешь. Скажи спасибо что по твою душу полиция еще не пришла. Спустя некоторое время ситуация станет такой, как в Южной Корее по отношению к читерам. Там читерство - уголовное преступление с тюремным сроком.
    Тебя заметили и отмаркировали как читера. Тебе больше нет места в играх Селлов. Это - твое наказание.
    Написано
  • Почему окружность получается отрисованной не ровно?

    @MarkusD Куратор тега C++
    Wataru, SDL настолько примитивен, насколько примитивен GPU в конце цепочки его управления. :)
    SDL - это надстройка над OGL второго или третьего порядка. Автор просто не включил тот самый пресловутый алиасинг для презентации экрана. Он по умолчанию выключен.
    Написано
  • Где найти чистые исходники мобильного сервера SAMP / CRMP?

    @MarkusD Куратор тега C++
    Prg, у тебя спросили конкретное уточнение.
    В современном мире, в моменте 2025-го года, чистота исходного кода определяется мерой вмешательства нейросеток в тот самый изначально чистый код. И чем больше это вмешательство, тем грязнее код.
    Тебя интересует такая мера чистоты кода? Или же ты под чистотой подразумеваешь что-то свое личное?
    Тебя не понимают. Потрудись исправить ситуацию, допущенную с твоей же стороны.
    Написано
  • Как работает объявление переменных разных типов данных?

    pasha_nevalyasha, если появился другой вопрос, то и создавай другой вопрос. В этом вопросе ответы получены и решение найдено.
    Правилами запрещено размещать несколько разнородных вопросов в одном.
    Написано
  • В visual studio для c++ пишет ошибки E0070. Как их убрать?

    @MarkusD Куратор тега C++
    Dyikot, ну вот. Поступают уточнения по контексту проблемы. Это клево. :)
    Давай коротко скажу. Даже в 25-м году пенять на неполную поддержку C++20 все еще рано.
    Да, уже вышел 23-й стандарт. Да, уже готовится фиксация 26-го стандарта. И что? подавляющее большинство производственного кода как было на C++17 и ранних стандартах, так и остается.
    Стимула быстро и точно вводить полную поддержку C++20 нет ни у кого из разработчиков трансляторов.
    Да, вот тут у тебя отрыгнуло студию. Нет, это не показатель. Потому что в другом месте отрыгнет GCC или Clang. Или Xcode дуба даст. Или плойкин/боксовый/сычевый транслятор, которые базируются на тех же LLVM и GCC. Или андроид тебе скажет: "А мы такое не поддерживаем, держите заглушечку".

    И я сейчас не занимаюсь адвокатурой проблемы в студии. Но вот о чем говорю: Ты ведь уже создал тикет в поддержке студии со своей проблемой? Создал же? Поди нет. А обсуждать проблему надо там. И людей надо туда звать, чтобы разработчики студии поскорее чесаться начали для исправления проблемы. Я так делаю с каждой проблемой поддержки стандарта, с которой сталкиваюсь. И мои тикеты довольно хорошо закрывают.
    Написано
  • В visual studio для c++ пишет ошибки E0070. Как их убрать?

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

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

    Иными словами, это не столько проблема кода, сколько проблема структуры проекта и организации связей между файлами проекта.
    Написано
  • В visual studio для c++ пишет ошибки E0070. Как их убрать?

    @MarkusD Куратор тега C++
    Dyikot, рисуночки лишние (правила нарушают) и ни о чем не говорят по факту. Достаточно приложить лог сборки. Там все видно.
    E0070 говорит о том, что ты пробуешь пользоваться экземпляром определенного типа там, где этот тип еще не является полным.

    Опять же я тысячу раз видел как сборка при этом успешная, но ошибка использования неполного типа все равно есть и отображается правильно. Тысячу раз видел как люди пеняют на студию, а по сути у самих просто руки кривые и знаний нет.
    Ты не приводишь контекст относительно условий и места этой ошибки, а именно в контексте вся суть твоей проблемы.
    Написано
  • Почему размер .so в Android в разы больше чем аналогичный .dll для Windows?

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

    Спасибо за ответ, разобрался - нужно было llvm-strip сделать.

    Это был не ответ, а комментарий. Ты точно разобрался? Тогда напиши грамотный ответ в области ответов и отметь его решением.
    Ты правильно понял что делает llvm-strip? Это поведение точно то, которое тебе нужно? Или ты просто оценил выполненную работу через размер выходного файла и успокоился на этом?
    Написано
  • Почему возникает ошибка при вызове вирутального метода в "operator="?

    @MarkusD Куратор тега C++
    Wataru , есть неточность, она вводит в заблуждение.
    Во-вторых, это проблема из-за правил поиска операторов. Они ищутся только в типах, которые участвуют в выражении, т.е. int и WidthProperty.

    Не из-за правила поиска операторов. Операторы ищутся по ADL по умолчанию или через QNL если постараться. Конкретно у автора вопроса действует правило инстанцирования методов шаблона. Запрос по ADL не приведет к инстанцированию, т.к. ADL опирается только на набор уже инстанцированных методов. Эту ключевую особенность можно, кстати, использовать в целях проверки доступности типов или вообще счетчик сделать, например.
    И вот чтобы оператор здесь у автора стал доступен после инстанцирования типа, его нужно явно инстанцировать в наследнике выражением, которое ты и привел в примере.
    Написано
  • Подключение VPN на клиенте через оптоволокно?

    Андрей Димаков , понимаешь какая штука. Ты сейчас в вопросе написал какой-то несвязный и бессмысленный текст.
    Вот для тебя он имеет какой-то свой смысл. А для связанных с сетевым оборудованием людей это - бессмыслица. Да и в комментариях, честно говоря, тоже что-то весьма неопрятное.
    И самая печаль (для тебя) в том, что это как раз тот случай, когда если надо объяснять, то не надо объяснять.

    Проблема - твоя, не наша. Чтобы ее описать для нас, тебе нужно обрести некоторое базовое образование самостоятельно. В правильно заданном вопросе кроется половина ответа. Это означает что для получения ответа нужна грамотность при составлении своего вопроса.
    Написано
  • Как вкорячить в вентилятор охлаждения pwm регулятор?

    runapa, все верно. Мать это понимает через два пина, которые на разъеме кулера закорочены на землю (5-6).
    Эти два пина на разъеме матери надо закоротить чтобы она думала будто у нее есть кулер.
    При этом вероятно мать будет бить тревогу что кулер есть, но не крутится. Это из-за датчика оборотов (4). Эту функцию на матери проще отключить чем твоими силами доставить на этот пин данные.
    Хотя... Вот как я писал выше, таким же образом, т.е. перепиновкой, можно из трехпинового входа регулятора сделать 6-пиновый разъем для матери. На контроллере теряется не больше 20мА судя по описанию, мать это бесчинство выдержит даже не заметив.
    Написано
  • Как вкорячить в вентилятор охлаждения pwm регулятор?

    runapa , а, вон чего. Это проприетарный HP-шный разъем.
    В такие моменты полезно сопровождать вопрос фотографиями. Однако...
    Я тут быстро глянул. Вопрос уже много лет как решен на redit: [1], [2], [3]. На том же али можно купить переходник с 4-pin PWM на этот разъем.
    Но тебе даже этот переходник не нужен, если у тебя есть 4-пиновый хвост от кулера. Можно просто перепаять провода по схеме или вообще вынуть пины из 6-пинового и вставить в 4-пиновый правильно.
    Написано
  • Как вкорячить в вентилятор охлаждения pwm регулятор?

    runapa , коротко: ты не понимаешь всё.
    У AFC0912DF трехпиновый разъем. Ты не приложил фотографии разъема, кулера и шелкографии на его плате. Гугл по артикулу показывает только трехпиновые версии.
    Регулятор имеет трехпиновый ввод, четырехпиновый выход с PWM и крутилку для подстройки скважности ШИМ-сигнала оборотов. У тебя не получится поженить трехпиновый кулер с PWM-выходом регулятора. Трехпиновые кулеры регулируются только через напряжение на входе.
    Чтобы регулировать обороты такого кулера, тебе нужен регулятор по напряжению, а не ШИМ-генератор.
    Написано
  • Какой выбрать сервопривод для детской кровати?

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

    Сама система - это Nema17, TMC2209 и STM/Arduino. Больше в железе ничего не надо, код надо мощный написать и панельку настроек сделать понятной для жены/тещи/няни.
    Но ты забудешь. Забудешь выключить вовремя, забудешь поставить правильное время, забудешь поставить правильную амплитуду, забудешь периодически контролировать. А все эти автоматические качалки необратимо влияют на ребенка. Готов ли ты пойти на такой эксперимент со своим собственным ребенком?
    Написано
  • Возможно ли перегрузить с помощью ограничений?

    @MarkusD Куратор тега C++
    Dyikot, правильно что не видишь как выбирать. У тебя наблюдается тупиковая ситуация.
    Перегрузка имени - это инструмент поддержки подобия. Перечитай про LSP. Перегрузки должны позволять расширение вглубь множества типов элемента. У тебя перегрузка на предикат вообще не соотносится с множеством типов элемента. Т.е. ты нарушаешь LSP таким действием.
    В случае шаблона функции перегрузок у тебя в целом существовать не должно. Перегрузки шаблона функции нужны только для обработки специфичных аргументов в рамках одной системы типов.

    По поводу переименования. Там буквально плачет и просится вариант: Ranges::FirstOrDefault::ByValue и Ranges::FirstOrDefault::ByCriteria.
    Написано
  • Возможно ли перегрузить с помощью ограничений?

    @MarkusD Куратор тега C++
    Dyikot, а если элементами твоей коллекции являются объекты std::function, как ты планируешь выбирать перегрузку Ranges::FirstOrDefault?
    Твой предикат - это функтор. Твои элементы коллекции - это функторы. Как быть?
    Написано
  • Почему двоится изображение на мониторе?

    neison,
    а не опасно в холодную вытягивать кабель и тем более подключать его заново?

    Привет. :)
    На холодную - это при полностью выключенном железе.
    На горячую - это в момент работы железа.
    Оба варианта безопасны. HDMI или DP гальванически развязаны на обоих концах, выравнивание потенциалов при подключении не требуется.

    Причем если первый был во время часовой и более сессии, то последующие могли продолжаться каждые 15 минут.

    А это может говорить о перегреве видеокарты. Конкретно это может быть локальный малодетектируемый перегрев управляющего элемента на плате. Возможно из-за высокого напряжения. Собственно SpecteRED написал об этом и теперь уже именно эта гипотеза выглядит самой вероятной.

    Есть предположение насчет 2х видеоадаптеров (одновременно с основной видеокартой работает встроенная от ryzen).

    Только это не ноут. При подключении дискретки встроенное граф.ядро процессора отключается наглухо. Иначе мы бы уже давно использовали его для нужд физики. Но возможности на самом деле нет.
    Написано
  • Почему не работает оператор for each в C++?

    @MarkusD Куратор тега C++
    Adamos, ты прав. По ошибке все сразу понятно. И исправление легко делается своими силами.

    alikhan_hero, вот что ты написал:
    int numbers[rows][columns] = { {1, 2}, {5, 4}, {9, 7} };

    Чем твой код отличается от кода ниже?
    using IntColumns = int[ columns ];
    using IntMatrix = IntColumns[ rows ];
    
    IntMatrix numbers = { {1, 2}, {5, 4}, {9, 7} };

    Каким должен быть тип значения для цикла по numbers в обоих случаях?
    Что вернет std::begin( numbers ); в обоих случаях и какой тип будет у этого результата?
    Написано