#include "Domain/DomainTraits.h"
Classes | |
struct | DomainTraits< Range< Dim > > |
DomainTraits<Range<Dim>>: The specialization of DomainTraits for Range, for dimensions greater than one. More... | |
struct | DomainTraits< Range< 1 > > |
DomainTraits<Range<1>>: The specialization of DomainTraits for Range, for dimension == 1. More... | |
struct | DomainChangeDim< Range< Dim1 >, Dim2 > |
DomainChangeDim<T, int> is used to convert from a domain of one dimension to another dimension (the second template parameter). More... |
It defines the general behavior of Range, including its typedef and static data characteristics, how to store data for a Range, etc. It is used by the Domain base class of Range to implement most of the public interface.
DomainTraits<Range<Dim>> stores the characteristics and much of the implementation details for Range domain objects. A Range represents a sequence of numbers [a, a+s, a+2s, ... b], with a run-time stride s.
A general version of DomainTraits<Range<Dim>> is defined here, which only includes the basic information to make Range<Dim> look like an array of Range<1> objects. DomainTraits<Range<1>> is a more specific specialization which provides most of the necessary interface information for items which need to know about Range. Since most of the interface for a domain object is only available for 1D versions of that domain object, the Range<1> specialization defines more interface functions than the Range<Dim> case.