/* * IndexedVectors.hpp * * Created on: Jun 12, 2016 * Author: heber */ #ifndef INDEXEDVECTORS_HPP_ #define INDEXEDVECTORS_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "Fragmentation/Summation/SetValues/detail.hpp" #include "Fragmentation/Summation/SetValues/IndexedValue.hpp" #include "Fragmentation/Summation/ZeroInstance.hpp" /** This struct is basically just a typedef for an IndexedValue with * detail::force as the code was refactored into this more general state * from the original IndexedVectors class. * * Also, we need to implement the ZeroInstance here, as nested template * declarations a la ZeroInstance< IndexedValue > are * ambiguous with ZeroInstance< detail::force >. */ class IndexedVectors : public IndexedValue { public: IndexedVectors( const typename IndexedValue::indices_t &_indices, const typename IndexedValue::values_t &_vectors) : IndexedValue(_indices, _vectors) {} IndexedVectors() {} }; template T ZeroInstance(); template<> IndexedVectors ZeroInstance< IndexedVectors >(); template<> detail::force ZeroInstance< detail::force >(); #endif /* INDEXEDVECTORS_HPP_ */