c++ - Does this class act in the same way of its parent? -



c++ - Does this class act in the same way of its parent? -

i define template class this:

template <typename a, typename b> class { ~~~ };

and want utilize something<x, y>. isn't neat, did this:

typedef something<x, y> somenewthing;

however, have problem yet. forwarding declaration of somenewthing form.

class x; class y; template <typename a, typename b> class something; typedef something<x, y> someappropriatenewname;

it inconvenient write in every header contains class. so, rather using of typedef, seek using inheritance.

class someappropriatenewname : public something<x, y> {};

except inheritance, empty class. forwards declaration this.

class someappropriatenewname;

it seems should work correctly.

does somenewthing deed in same way something<x, y> do?

does class deed in same way of parent? isn't there difference?

someappropriatenewname has few differences. of can fix.

someappropriatenewname should forwards constructors , other special fellow member functions parent.

if delete someappropriatenewname * something<x, y> * invoke undefined behavior without virtual destructor. in practice, if someappropriatenewname empty may fine.

someappropriatenewname not pattern-match template overloads something<x, y> does. distinct type. work pretty function argument matching (there slight differences), if pass to:

template<class t> struct is_something:std::false_type{}; template<class x, class y> struct is_something<something<x,y>>:std::true_type{};

then something<x, y> gives true, while someappropriatenewname gives false.

round-tripping void* has go exact same type, unless both types standard layout think.

c++ templates inheritance

Comments

Popular posts from this blog

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -