1. C++ / Говнокод #27706

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    #include <functional>
    #include <string>
    
    void rooster(uint32_t number)
    {
    
    }
    
    void rooster(std::string& str)
    {
    
    }
    
    int main()
    {
        //не осилил ни один компилятор
        std::function<void(std::string&)> f = std::bind(&rooster, std::placeholders::_1);
        //осилил gcc6.1+, но не может осилить clang 13.0
        std::function<void(std::string&)> f2 = std::bind<void(std::string&)>(&rooster, std::placeholders::_1);
    
        return 0;
    }

    Почему компиляторы крестов не могут сами разрулить ситуацию?

    Запостил: mvngr, 08 Октября 2021

    Комментарии (12) RSS

    • https://godbolt.org/z/Mzx7EPr7Y
      Ответить
    • Тем временем C#:
      // System.Console.WriteLine(string)
      Action<string> wl_string = Console.WriteLine;
      // System.Console.WriteLine(object)
      Action<object> wl_object = Console.WriteLine;

      https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBTjAPKgDAPgAQDuANgP rZ4C8eqAnANzKoYD2ARgFYCmAxgC77ESbLn0rU49 IA==
      Ответить
      • Вывод типов в обратную сторону никогда не был сильной стороной крестов...
        Ответить
        • В крестах в принципе нет перегрузки функций по возвращаемому значению, есть только перегрузка по типам аргументов.
          Ответить
          • А в «Nim» есть перегрузка по возвращаемому значению?
            Ответить
            • Что, никто не знает? Какой анскилл )))

              А вот я знаю!

              /usercode/in.nim(4, 6) Error: overloaded 'koko' leads to ambiguous calls
              Ответить
    • Может, надо купить pro-версию clang?
      Ответить
    • > std::bind
      Компилятор тошнит.
      Ответить

    Добавить комментарий