This is probably a newbish question...but: I have a polymorphic class structure like this:
class Base {
public:
virtual void write_json(<Writer-type??>) = 0;
};
class Derived1 : public Base {
public:
void write_json(<Writer-type??>) { ... }
};
class Derived2 : public Base {
public:
void write_json(<Writer-type??>) { ... }
};
My classes shouldn't care at all about the specifics of the writer passed in, but since rapidjson heavily depends on CRTP, I either have to declare the function with a fully-specialized Writer object (and lock callers into using only that specialization of Writer) or template the write_json method and lose the polymorphism of my classes.
Is there a recommended approach for gluing CRTP code and dynamic-polymorphic code together?
This is probably a newbish question...but: I have a polymorphic class structure like this:
My classes shouldn't care at all about the specifics of the writer passed in, but since rapidjson heavily depends on CRTP, I either have to declare the function with a fully-specialized
Writerobject (and lock callers into using only that specialization of Writer) or template thewrite_jsonmethod and lose the polymorphism of my classes.Is there a recommended approach for gluing CRTP code and dynamic-polymorphic code together?