Vladimir "Dair" Lebedev-Schmidthof (dair_spb) wrote,
Vladimir "Dair" Lebedev-Schmidthof
dair_spb

C++ угар

Ох, C++...
Update: разобрался. Косяк в том, что исходный автор написал темплейт внутри темплейта.
Слева оставил авторский вариант, справа написал свой — всё хорошо и работает.


#include <iostream>

template<class T>
class A
{
public:
   template<class T>
   A& operator=(const A<T>& rhs)
   {
      std::cout<<"Way to go!\n";
      return *this;
   }

};

int main()
{
   A<int> a, b;
   a = b;
}
#include <iostream>

template<class T>
class A
{
public:
    A<T>& operator=(const A<T>& rhs)
    {
      std::cout<<"Way to go!\n";
      return *this;
    }
};


int main()
{
    A<int> a, b;
    a = b;
    //a.operator=(b);
}


То, что при запуске НЕ ВЫВОДИТСЯ строчка, это, я считаю, угар. Причем это не баг, это согласно стандарту так. Удобно, шо караул.
Tags: software development
Subscribe

  • Мотивы Хабра

    http://habrahabr.ru/post/145960/ Пацаны, а вот кто мне расскажет, чем отличается абстрактный класс от интерфейса? ;-)

  • Политические координаты

    Занятный тест на slon.ru: Я прошёл с вот таким результатом. А вы? ;-) Второй результат, где я более щедро расставлял максимальные и минимальные…

  • очередная жж-забава

    В кого бы влюбиться? dair_spb По совету Live1000 я ищу высокую деловую итальянку с добрыми глазами и умеющую играть на…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments