c++ - Problem with template specialization and template template parameters -
c++ - Problem with template specialization and template template parameters -
i have class helper
:
template <typename t, template <typename> e> class helper { ... };
i have class template, exposure
, inherit helper
while passing template template parameter e
. need specialize exposure
. want write following:
template <> class exposure<int> : public helper<int, exposure> { exposure() : helper<int, exposure>() { ... }; ... };
unfortunately won't compile. gcc complains:
exposure.h:170: error: type/value mismatch @ argument 2 in template parameter list `‘template > class exposurehelper’
exposure.h:170: error: expected constant of type ‘’, got ‘exposure’
am doing wrong? there workaround i'm trying do?
if want pass template rather class
template <typename t, template<typename> class e> class helper { }; template <typename t> class exposure; template <> class exposure<int> : public helper<int, exposure > { };
or if intent different
template <typename t, typename e> class helper { }; template <typename t> class exposure; template <> class exposure<int> : public helper<int, exposure<int> > { };
c++ design templates template-specialization
Comments
Post a Comment