All pastes #956709 Raw Edit

C++ is fun

public cpp v1 · immutable
#956709 ·published 2008-03-25 14:43 UTC
rendered paste body
template<class T>class ForeignKey{    public:        ForeignKey() : m_obj(NULL),                       m_id(QVariant()) { }         T *operator()(bool notNull = true) {            if(!m_obj && !m_id.isNull())                m_obj = dynamic_cast<T *>(g_database->lookupItem(typeid(T), m_id.toInt()));            assert(!notNull || m_obj);            return m_obj;        }        void setId(QVariant id) {            m_id = id;        }        QVariant id() {            if(!m_obj)                return QVariant();            return m_obj->id();        }    private:        T *m_obj;        QVariant m_id;};