#ifdef include_range_type include_range_type(NUL,-2) #else #ifdef __cxz_ranges_header__ // assert, that this is only used within range_types/header.h #ifndef __cxz_range_type_null_def__ #define __cxz_range_type_null_def__ namespace CNORXZ { typedef GenSingleIndex NullIndex; std::shared_ptr > nullr(); std::shared_ptr nulli(); template <> class GenSingleRangeFactory : public RangeFactoryBase { public: typedef GenSingleRange oType; GenSingleRangeFactory(); std::shared_ptr create(); friend std::shared_ptr nullr(); private: static std::shared_ptr mRInstance; }; template <> class GenSingleRange : public RangeInterface { public: typedef RangeBase RB; typedef typename RangeInterface >::IndexType IndexType; typedef GenSingleRange RangeType; typedef size_t MetaType; typedef GenSingleRangeFactory FType; virtual size_t size() const final; virtual size_t dim() const final; virtual vector typeNum() const final; virtual size_t cmeta(char* target, size_t pos) const final; virtual size_t cmetaSize() const final; virtual std::string stringMeta(size_t pos) const final; virtual vector data() const final; virtual SpaceType spaceType() const final; virtual DataHeader dataHeader() const final; size_t get(size_t pos) const; size_t getMeta(size_t metapos) const; virtual IndexType begin() const final; virtual IndexType end() const final; //virtual std::shared_ptr index() const final; friend GenSingleRangeFactory; static constexpr bool defaultable = true; static constexpr size_t ISSTATIC = 1; static constexpr size_t SIZE = 1; static constexpr bool HASMETACONT = false; static GenSingleRangeFactory factory() { return GenSingleRangeFactory(); } protected: GenSingleRange() = default; GenSingleRange(const GenSingleRange& in) = delete; //GenSingleRange(size_t spinNum); }; typedef GenSingleRange NullRange; typedef GenSingleRangeFactory NullRF; std::shared_ptr mkNUL(const char* dp, size_t size); } #endif // #ifndef __cxz_range_type_null_def__ #endif // #ifdef __cxz_ranges_header__ #endif // #ifdef include_range_type