«Development (сегодня 0)» #define intentions Что-то в LT/Dev совсем тухловато, попробую наполнить… На старом ЛОРе это был мой любимый раздел… int main () { Пишите сюда любые вопросы, набросы и запросы о C++, а я постараюсь ответить . 1. Каверзность и провокационность приветствуется. 2. Учебные задачи снабжайте Вашими собственными попытками решения 3. Не забывайте про https://godbolt.org/ и аналоги О себе: имею профессиональный и академический интерес в системном (low-level, zero-cost, hpc…) программировании; есть некоторый опыт преподавания. C++ язык далеко не самый ладный, но ничего лучше для этой области я пока не встречал. Мой профит от этой темы предельно прост: охота побо ЛТ ать. return 0;} // Терзают сомнения в успехе этого топика, но не могу противостоять Fais ce que dois, advienne, que pourr © // Перехват инициативы по ответам на вопросы, естественно, также не возбраняется…

  • Usruser
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    имею профессиональный и академический

    Я когда-то был бестолковым миддлом, но уже лет 10 профессионально не писал на плюсах. Сейчас хочу вернуться в профессию, но… гхм.

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

    О! И нефиг в меня бросаться французскими поговорками. Я не знаю французского. Мог бы, вежливости ради, сразу и перевести, чай не sapienti sat цитируешь.

  • ox55ff
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Пишите сюда любые вопросы

    Контравариантность и ковариантность в c++. Есть ли жизнь?

  • JamesHolden
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Прямо по самому языку это сложно, нужны какие-то нетривиальные задачи чтобы возникли такие вопросы.

    Вот если бы по более конкретной предметной области какой - скажем stm32.

  • ThePlayerZeroOP
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Usruser «Мог бы, вежливости ради, сразу и перевести» “Делай, что должен – и будь, что будет”. Девиз рыцарей Кадош. «Поэтому если тебе для создания диалога в стиле греческих философов потребуется … кастуй.» Кастую «Я когда-то был бестолковым миддлом, но уже лет 10 профессионально не писал на плюсах. Сейчас хочу вернуться в профессию, но… гхм.» Почему перестал писать? Зачем хочешь вернуться? ox55ff «Контравариантность и ковариантность в c++. Есть ли жизнь?» Стакан наполовину полон. 0. Поддержки (ко-,контр-)вариантности в самом языке нет. Потому что система типов… оставляет желать лучшего. Либо, вариантность просто было нельзя
    нормально сделать, учитывая другие фишки языка (например, множественное наследование, тем более ромб?). Я не знаю точных причин 1. Встроенная ковариантность есть для указателей (в том числе “умных”) и ссылок. 2. Шаблонные контейнеры из STL не вариантны вообще, даже для тех случаев, где это можно было сделать. 3. Контрвариантности (по аргументам) для функций нет, но если пользоваться враппером std::function, то будет работать. Его специально ввели, чтобы обмазать всякими удобностями, при этом не меняя core language. 4. Композиция вариантности не работает вообще. Потому что опять же пункт 0. То есть, два ковариантных шаблонных типа скорее всего потеряют это свойство, если их друг в друга вложить. 5. Для своего класса вариантность можно впилить с помощью std::is_convertible Хороший вопрос, спасибо! Если я где напутал, поправляйте, дополняйте. JamesHolden Про микроконтроллеры я ничего не знаю…

    А вот про CPU и GPU можно что-нибудь обсудить. Ну и про суперкомпьютерные кластеры.

    • Usruser
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      Почему перестал писать? Зачем хочешь вернуться?

      Долгая и тяжёлая болезнь не позволяла мне работать. А вернуться хочу потому что ничего более интересного чем писать на плюсах мне делать не приходилось.

    • JamesHolden
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      Ладно, глупый нубский вопрос по C фактически.

      Есть такая штука bumblebee daemon. У нее в исходниках какого-то рожна несколько глобальных для всего проекта переменных объявлены в .h файлах, причем без extern.

      Эти .h файлы инклудятся в несколько модулей сразу, и при линковке возникает ошибка multiple definition.

      Это понятно и ожидаемо, а вопрос вот в чем - это 10 лет компилировалось и работало! Сегодня я заметил что перестало. Как???

      • ox55ff
        link
        fedilink
        arrow-up
        0
        ·
        4 years ago

        вопрос по C

        Ну всё ясно. Эти товарищи горазды на всякие хаки.

        • JamesHolden
          link
          fedilink
          arrow-up
          0
          ·
          4 years ago

          Хотелось бы понять суть хака. Я лично думал что так вообще нельзя.

  • ThePlayerZeroOP
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    Usruser «А вернуться хочу потому что ничего более интересного чем писать на плюсах мне делать не приходилось.» Это очень хорошая причина, экзистенциальная! 👍
    У тебя всё получится Для твоего случая могу посоветовать вот что. Найди любой бесплатный и относительно современный веб-курс по C++ и проходи его в свободное время. Это позволит тебе Освежить знание самого языка, узнать про стандарты C++11 и новее, которые ты наверное пропустил. Лекции можно смотреть за едой, в метро и т.д. Порешать весёлые задачки прямо на обучающей платформе, с автоматической проверкой ответа. Снова почувствуешь себя на уроке информатики 🙂 И мозги размять будет полезно Про бесплатность я не буду подробно пояснять, но это тоже важный момент. Платные курсы могут быть полезны в других ситуациях, но не в твоей. Если будут проблемы с поиском, то хорошие бесплатные курсы есть, например, на stepik.org Немного порыскал, можно вот этот https://stepik.org/course/3206/promo JamesHolden «Эти .h файлы инклудятся в несколько модулей сразу, и при линковке возникает ошибка multiple definition.» «а вопрос вот в чем - это 10 лет компилировалось и работало! Сегодня я заметил что перестало. Как???» Опции -fcommon , -fno-common Начиная с GCC 10 они включили -fno-common по умолчанию, поэтому поведение изменилось. https://gcc.gnu.org/gcc-10/changes.html

    • JamesHolden
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      Спасибо, значит скорее всего у меня в системе опции поменяли, потому что еще недавно даже gcc 11 это собирал.

    • Usruser
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      узнать про стандарты C++11 и новее, которые ты наверное пропустил.

      Да, когда я профессионально писал, 11-й стандарт только начал широко использоваться на практике и я имею о нём смутное представление. Язык сильно изменился с тех времён.

      Пока читаю https://www.learncpp.com/ Написано без “зауми” и без молодёжного сленга, но весьма подробно.