dimanche 21 décembre 2014

Template Specialization for Template Template Parameter

I created a template class with template template parameters in .h file:



template<typename Index=Date, typename Value=double, template<typename>
class Container=std::vector> class FastDataSeries


Then I try to specialize it in .cpp file so as to utilize the C++11 "extern template" feature in other file,



template<> class FastDataSeries <Date, double, std::vector >;
template<> class FastDataSeries <int, double, std::vector >;


Then I got the error message as below:



../src/timeseries/FastDataSeries.cpp:13:61: error: type/value mismatch at argument 3 in template parameter list for ‘template class Container> class MarketRisk::FastDataSeries’ template<> class FastDataSeries ; ^ ../src/timeseries/FastDataSeries.cpp:13:61: error: expected a template of type ‘template class Container’, got ‘template class std::vector’ ../src/timeseries/FastDataSeries.cpp:14:60: error: type/value mismatch at argument 3 in template parameter list for ‘template class Container> class MarketRisk::FastDataSeries’ template<> class FastDataSeries ; ^ ../src/timeseries/FastDataSeries.cpp:14:60: error: expected a template of type ‘template class Container’, got ‘template class std::vector’ make: *** [src/timeseries/FastDataSeries.o] Error 1



What's the correct grammar to do this?


Aucun commentaire:

Enregistrer un commentaire