cnorxz/src/include/ranges/rbase_def.h

131 lines
2.6 KiB
C
Raw Normal View History

2017-12-17 17:40:55 +01:00
// -*- C++ -*-
#ifndef __ranges_base_def_h__
#define __ranges_base_def_h__
2018-10-29 14:19:42 +01:00
#include <cstdlib>
#include <iostream>
#ifndef CHECK
#define CHECK std::cout << __FILE__ << ": @" << __LINE__ << " in " << __func__ << std::endl;
#endif
#ifndef VCHECK
#define VCHECK(a) std::cout << __FILE__ << ": @" << __LINE__ \
<< " in " << __func__ << ": " << #a << " = " << a << std::endl;
#endif
2017-12-17 17:40:55 +01:00
namespace MultiArrayTools
{
2018-10-29 14:19:42 +01:00
template <class R>
using SIZET = size_t;
2017-12-17 17:40:55 +01:00
/***********************
* Provided Types *
***********************/
// range_base.h
enum class SpaceType;
// range_base.h
class RangeFactoryBase;
// range_base.h
class RangeBase;
// range_base.h
template <class Index>
class RangeInterface;
// index_base.h
template <class I, typename MetaType>
class IndexInterface;
// single_range.h
template <typename U, SpaceType TYPE>
class SingleRange;
// single_range.h
template <typename U, SpaceType TYPE>
class SingleRangeFactory;
// single_range.h
template <typename U, SpaceType TYPE>
class SingleIndex;
// subrange.h
template <class Index>
class SubIndex;
// subrange.h
template <class Range>
class SubRangeFactory;
// subrange.h
template <class Range>
class SubRange;
2017-12-17 17:40:55 +01:00
// multi_range.h
template <class... Ranges>
class MultiRangeFactory;
// multi_range.h
template <class... Ranges>
class MultiRange;
// multi_range.h
template <class... Indices>
class MultiIndex;
// container_range.h
//template <typename T, class... Ranges>
//class ContainerRangeFactory;
template <typename T, class... Ranges>
using ContainerRangeFactory = MultiRangeFactory<Ranges...>;
2017-12-17 17:40:55 +01:00
// container_range.h
//template <typename T, class... Ranges>
//class ContainerRange;
template <typename T, class... Ranges>
using ContainerRange = MultiRange<Ranges...>;
2017-12-17 17:40:55 +01:00
// container_range.h
template <typename T, class... Indices>
2017-12-17 17:40:55 +01:00
class ContainerIndex;
// anonymous_range.h
class AnonymousRangeFactory;
// anonymous_range.h
2018-07-16 15:55:55 +02:00
//class AnonymousRange;
2018-07-16 00:12:05 +02:00
2018-11-06 16:35:37 +01:00
// dynamic_range.h
class AbstractIW;
2018-10-22 14:27:55 +02:00
// dynamic_range.h
template <class EC>
2018-10-22 14:27:55 +02:00
class DynamicIndex;
// dynamic_range.h
template <class EC>
2018-10-22 14:27:55 +02:00
class DynamicRangeFactory;
// dynamic_range.h
template <class EC>
class DynamicRange;
2018-10-22 14:27:55 +02:00
// value_range.h
template <typename U>
class ValueRange;
template <typename U>
class ValueRangeFactory;
template <typename U>
class ValueIndex;
2017-12-17 17:40:55 +01:00
}
#endif