, AverageHelper<>::Average() TrivialList::Average(). , , .
:
template<typename TIndexable, typename Base >
class AverageHelper : public Base {
public:
template< typename T >
AverageHelper(T arg) : Base(arg) {}
};
class IndexableList : public AverageHelper<IndexableList,TrivialList> {
public:
IndexableList(int count) : AverageHelper<IndexableList,TrivialList>(count) {}
};
TrivialList:
template<typename TIndexable, typename Base >
class AverageHelper : virtual public Base {
};