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

    +154

    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
    #include <iostream>
    #include <stdio.h>
     
    void foo(const long) { std::cout << "long" << std::endl; }
     
    template<typename _type_>
    void omg()
    {
            short i = 0;
            foo(i);
    }
     
    void foo(const short) { std::cout << "short" << std::endl; }
     
    int main(int, char*[])
    {
      omg<int>();
     
      getchar();
      return 0;
    }

    код для гцц -> http://ideone.com/mifTV

    вопрос, что выдаст говностудия?

    связанно с тем, что говностудия не ищет независимые типы использованные в шаблоне на этапе определения. она их ищет только в точке конкретизации шаблона. гцц связывает независимые типы в шаблоне на этапе определения шаблона

    З.Ы. ответ на http://govnokod.ru/9885#comment134160

    Запостил: Govnoeb, 09 Апреля 2012

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

    • Хорошо известный, подробно описанный баг. Присутвовал в VS2005. Присутствует в VS2010.
      Ответить
      • Это фишка мелкомягких: хорошо известный и подробно описанный баг элегантно превращается в фичу
        Ответить

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