简体   繁体   中英

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?

template<typename>

这与std :: vector的模板不匹配。您必须提供所有模板参数。

template<class T, class Allocator = std::allocator<T> class Container

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM