Почему я ненавижу Functor?
От: IROV..  
Дата: 01.05.08 20:14
Оценка:
Все очень просто, я на днях убил пол рабочего дня на поиски бага, о котором читал только в умных книгах.

И бог знает сколько бы еще искал, если бы не случайность.

попробую привести минимально воспроизводимый код.

main.cpp
#    include "Ptr.hpp"
#    include "Node.hpp"

#    include <string>

class GetItemResponse
{
public:
    virtual ~GetItemResponse(){}

protected:
    std::string a;
};

void main()
{
    node();
    Ptr<GetItemResponse> ir = new GetItemResponse;
}


Node.hpp
#    pragma once

void node();


Node.cpp
#    include "Node.hpp"
#    include "Ptr.hpp"

class GetItemResponse
{
public:
    virtual ~GetItemResponse(){}

protected:
    float a;
};

void node()
{
    Ptr<GetItemResponse> pt = new GetItemResponse;
}


Ptr.hpp
#    pragma once

template<class T>
class Ptr
{
public:
    Ptr( T * _t ): ptr(_t){}
    ~Ptr(){ delete ptr;    }

protected:
    T * ptr;
};


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



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