LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Related Symbols | List of all members
lsst::geom::Extent< T, N > Class Template Reference

A coordinate class intended to represent offsets and dimensions. More...

#include <Extent.h>

Inheritance diagram for lsst::geom::Extent< T, N >:
lsst::geom::ExtentBase< T, N > lsst::geom::CoordinateBase< Extent< T, N >, T, N >

Public Types

typedef Super::EigenVector EigenVector
 
typedef T Element
 

Public Member Functions

 Extent (T val=static_cast< T >(0)) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Construct an Extent with all elements set to the same scalar value.
 
 Extent (EigenVector const &vector) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Construct an Extent from an Eigen vector.
 
 Extent (Point< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Explicit constructor from Point.
 
template<typename U >
 Extent (Extent< U, N > const &other) noexcept(IS_NOTHROW_CONVERTIBLE< T, U >)
 Explicit constructor from Extent of different type (if allowed)
 
template<typename U >
 Extent (Point< U, N > const &other) noexcept(IS_NOTHROW_CONVERTIBLE< T, U >)
 
 Extent (Extent const &other)=default
 
 Extent (Extent &&other)=default
 
 ~Extent ()=default
 
Extentoperator= (Extent const &other)=default
 
Extentoperator= (Extent &&other)=default
 
computeSquaredNorm () const
 Return the squared L2 norm of the Extent (x^2 + y^2 + ...).
 
computeNorm () const
 Return the L2 norm of the Extent (sqrt(x^2 + y^2 + ...)).
 
void swap (Extent &other) noexcept
 
bool operator== (Extent< T, N > const &other) const noexcept
 Standard equality comparison.
 
bool operator!= (Extent< T, N > const &other) const noexcept
 Standard inequality comparison.
 
T & operator[] (int n)
 
T const & operator[] (int n) const
 
T & coeffRef (int n)
 
T const & coeffRef (int n) const
 
EigenVector const & asEigen () const noexcept(IS_ELEMENT_NOTHROW_COPYABLE)
 Return a fixed-size Eigen representation of the coordinate object.
 
Named comparison functions

Note that these return CoordinateExpr, not bool.

Unlike most arithmetic and assignment operators, scalar interoperability is provided for comparisons; expressions like

if (all(extent.gt(0))) ...

are both ubiquitous and easy to interpret.

CoordinateExpr< N > eq (Extent< T, N > const &other) const noexcept
 
CoordinateExpr< N > eq (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > ne (Extent< T, N > const &other) const noexcept
 
CoordinateExpr< N > ne (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > lt (Extent< T, N > const &other) const noexcept
 
CoordinateExpr< N > lt (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > le (Extent< T, N > const &other) const noexcept
 
CoordinateExpr< N > le (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > gt (Extent< T, N > const &other) const noexcept
 
CoordinateExpr< N > gt (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
CoordinateExpr< N > ge (Extent< T, N > const &other) const noexcept
 
CoordinateExpr< N > ge (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Additive arithmetic operators

No scalar interoperability is provided for Extent additive arithmetic operations.

Point< T, N > operator+ (Point< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Extent< T, N > operator+ (Extent< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Extent< T, N > operator+ () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Extent< T, N > operator- (Extent< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Extent< T, N > operator- () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 
Extent< T, N > & operator+= (Extent< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE)
 
Extent< T, N > & operator-= (Extent< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE)
 
Multiplicative arithmetic operators

As usual with matrices and vectors, Extent can be multiplied or divided by a scalar.

Extent< T, N > operator* (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Extent< T, N > & operator*= (T scalar) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Extent< T, N > operator/ (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Extent< T, N > & operator/= (T scalar) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
Point< T, N > asPoint () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
 Cast this object to an Extent of the same numeric type and dimensionality.
 
std::string toString () const
 Cast this object to an Extent of the same numeric type and dimensionality.
 

Static Public Attributes

static int const dimensions
 
static bool constexpr IS_ELEMENT_NOTHROW_COPYABLE
 
static bool constexpr IS_ELEMENT_NOTHROW_ASSIGNABLE
 

Protected Member Functions

void _swap (CoordinateBase &other) noexcept
 

Protected Attributes

EigenVector _vector
 

Related Symbols

(Note that these are not member symbols.)

bool allclose (CoordinateBase< Extent< T, N >, T, N > const &a, CoordinateBase< Extent< T, N >, T, N > const &b, T rtol=static_cast< T >(1E-5), T atol=static_cast< T >(1E-8)) noexcept(std::is_nothrow_copy_constructible< T >::value &&std::is_nothrow_copy_assignable< T >::value)
 Floating-point comparison with tolerance.
 

Detailed Description

template<typename T, int N>
class lsst::geom::Extent< T, N >

A coordinate class intended to represent offsets and dimensions.

Much of the functionality of Extent is provided by its CRTP base class, ExtentBase.

See geomOps for mathematical operators on Extent.

Definition at line 210 of file Extent.h.

Member Typedef Documentation

◆ EigenVector

template<typename T , int N>
typedef Super::EigenVector lsst::geom::Extent< T, N >::EigenVector

Definition at line 214 of file Extent.h.

◆ Element

typedef T lsst::geom::CoordinateBase< Extent< T, N > , T, N >::Element
inherited

Definition at line 57 of file CoordinateBase.h.

Constructor & Destructor Documentation

◆ Extent() [1/7]

template<typename T , int N>
lsst::geom::Extent< T, N >::Extent ( T val = static_cast<T>(0))
inlineexplicitnoexcept

Construct an Extent with all elements set to the same scalar value.

Definition at line 217 of file Extent.h.

217: Super(val) {}
ImageT val
Definition CR.cc:146

◆ Extent() [2/7]

template<typename T , int N>
lsst::geom::Extent< T, N >::Extent ( EigenVector const & vector)
inlineexplicitnoexcept

Construct an Extent from an Eigen vector.

Definition at line 220 of file Extent.h.

220: Super(vector) {}

◆ Extent() [3/7]

template<typename T , int N>
lsst::geom::Extent< T, N >::Extent ( Point< T, N > const & other)
explicitnoexcept

Explicit constructor from Point.

Definition at line 31 of file Extent.cc.

32 : Super(other.asEigen()) {}

◆ Extent() [4/7]

template<typename T , int N>
template<typename U >
lsst::geom::Extent< T, N >::Extent ( Extent< U, N > const & other)
explicitnoexcept

Explicit constructor from Extent of different type (if allowed)

◆ Extent() [5/7]

template<typename T , int N>
template<typename U >
lsst::geom::Extent< T, N >::Extent ( Point< U, N > const & other)
explicitnoexcept

◆ Extent() [6/7]

template<typename T , int N>
lsst::geom::Extent< T, N >::Extent ( Extent< T, N > const & other)
default

◆ Extent() [7/7]

template<typename T , int N>
lsst::geom::Extent< T, N >::Extent ( Extent< T, N > && other)
default

◆ ~Extent()

template<typename T , int N>
lsst::geom::Extent< T, N >::~Extent ( )
default

Member Function Documentation

◆ _swap()

void lsst::geom::CoordinateBase< Extent< T, N > , T, N >::_swap ( CoordinateBase< Extent< T, N >, T, N > & other)
inlineprotectednoexceptinherited

Definition at line 108 of file CoordinateBase.h.

◆ asEigen()

EigenVector const & lsst::geom::CoordinateBase< Extent< T, N > , T, N >::asEigen ( ) const
inlinenoexceptinherited

Return a fixed-size Eigen representation of the coordinate object.

The fact that this returns by const reference rather than by value should not be considered part of the API; this is merely an optimization enabled by the implementation.

Definition at line 89 of file CoordinateBase.h.

◆ asPoint()

template<typename T , int N>
Point< T, N > lsst::geom::ExtentBase< T, N >::asPoint ( ) const
noexceptinherited

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 89 of file Extent.cc.

89 {
90 return Point<T, N>(static_cast<Extent<T, N> const &>(*this));
91}

◆ coeffRef() [1/2]

T & lsst::geom::CoordinateBase< Extent< T, N > , T, N >::coeffRef ( int n)
inlineinherited

Definition at line 80 of file CoordinateBase.h.

◆ coeffRef() [2/2]

T const & lsst::geom::CoordinateBase< Extent< T, N > , T, N >::coeffRef ( int n) const
inlineinherited

Definition at line 81 of file CoordinateBase.h.

◆ computeNorm()

template<typename T , int N>
T lsst::geom::Extent< T, N >::computeNorm ( ) const
inline

Return the L2 norm of the Extent (sqrt(x^2 + y^2 + ...)).

Definition at line 243 of file Extent.h.

243{ return this->asEigen().norm(); }
EigenVector const & asEigen() const noexcept(IS_ELEMENT_NOTHROW_COPYABLE)
Return a fixed-size Eigen representation of the coordinate object.

◆ computeSquaredNorm()

template<typename T , int N>
T lsst::geom::Extent< T, N >::computeSquaredNorm ( ) const
inline

Return the squared L2 norm of the Extent (x^2 + y^2 + ...).

Definition at line 240 of file Extent.h.

240{ return this->asEigen().squaredNorm(); }

◆ eq() [1/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::eq ( Extent< T, N > const & other) const
noexceptinherited

Definition at line 47 of file Extent.cc.

47 {
48 CoordinateExpr<N> r;
49 for (int n = 0; n < N; ++n) r[n] = this->_vector[n] == other[n];
50 return r;
51}

◆ eq() [2/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::eq ( T scalar) const
inlinenoexceptinherited

Definition at line 105 of file Extent.h.

105 {
106 return this->eq(Extent<T, N>(scalar));
107 }
CoordinateExpr< N > eq(Extent< T, N > const &other) const noexcept
Definition Extent.cc:47

◆ ge() [1/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::ge ( Extent< T, N > const & other) const
noexceptinherited

Definition at line 82 of file Extent.cc.

82 {
83 CoordinateExpr<N> r;
84 for (int n = 0; n < N; ++n) r[n] = this->_vector[n] >= other[n];
85 return r;
86}

◆ ge() [2/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::ge ( T scalar) const
inlinenoexceptinherited

Definition at line 120 of file Extent.h.

120 {
121 return this->ge(Extent<T, N>(scalar));
122 }
CoordinateExpr< N > ge(Extent< T, N > const &other) const noexcept
Definition Extent.cc:82

◆ gt() [1/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::gt ( Extent< T, N > const & other) const
noexceptinherited

Definition at line 75 of file Extent.cc.

75 {
76 CoordinateExpr<N> r;
77 for (int n = 0; n < N; ++n) r[n] = this->_vector[n] > other[n];
78 return r;
79}

◆ gt() [2/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::gt ( T scalar) const
inlinenoexceptinherited

Definition at line 117 of file Extent.h.

117 {
118 return this->gt(Extent<T, N>(scalar));
119 }
CoordinateExpr< N > gt(Extent< T, N > const &other) const noexcept
Definition Extent.cc:75

◆ le() [1/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::le ( Extent< T, N > const & other) const
noexceptinherited

Definition at line 68 of file Extent.cc.

68 {
69 CoordinateExpr<N> r;
70 for (int n = 0; n < N; ++n) r[n] = this->_vector[n] <= other[n];
71 return r;
72}

◆ le() [2/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::le ( T scalar) const
inlinenoexceptinherited

Definition at line 114 of file Extent.h.

114 {
115 return this->le(Extent<T, N>(scalar));
116 }
CoordinateExpr< N > le(Extent< T, N > const &other) const noexcept
Definition Extent.cc:68

◆ lt() [1/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::lt ( Extent< T, N > const & other) const
noexceptinherited

Definition at line 61 of file Extent.cc.

61 {
62 CoordinateExpr<N> r;
63 for (int n = 0; n < N; ++n) r[n] = this->_vector[n] < other[n];
64 return r;
65}

◆ lt() [2/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::lt ( T scalar) const
inlinenoexceptinherited

Definition at line 111 of file Extent.h.

111 {
112 return this->lt(Extent<T, N>(scalar));
113 }
CoordinateExpr< N > lt(Extent< T, N > const &other) const noexcept
Definition Extent.cc:61

◆ ne() [1/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::ne ( Extent< T, N > const & other) const
noexceptinherited

Definition at line 54 of file Extent.cc.

54 {
55 CoordinateExpr<N> r;
56 for (int n = 0; n < N; ++n) r[n] = this->_vector[n] != other[n];
57 return r;
58}

◆ ne() [2/2]

template<typename T , int N>
CoordinateExpr< N > lsst::geom::ExtentBase< T, N >::ne ( T scalar) const
inlinenoexceptinherited

Definition at line 108 of file Extent.h.

108 {
109 return this->ne(Extent<T, N>(scalar));
110 }
CoordinateExpr< N > ne(Extent< T, N > const &other) const noexcept
Definition Extent.cc:54

◆ operator!=()

template<typename T , int N>
bool lsst::geom::ExtentBase< T, N >::operator!= ( Extent< T, N > const & other) const
inlinenoexceptinherited

Standard inequality comparison.

Returns true iff any(this->ne(other));

Definition at line 84 of file Extent.h.

84{ return any(this->ne(other)); }
bool any(CoordinateExpr< N > const &expr) noexcept
Return true if any elements are true.

◆ operator*()

template<typename T , int N>
Extent< T, N > lsst::geom::ExtentBase< T, N >::operator* ( T scalar) const
inlinenoexceptinherited

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 160 of file Extent.h.

160 {
161 return Extent<T, N>(this->_vector * scalar);
162 }

◆ operator*=()

template<typename T , int N>
Extent< T, N > & lsst::geom::ExtentBase< T, N >::operator*= ( T scalar)
inlinenoexceptinherited

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 163 of file Extent.h.

163 {
164 this->_vector *= scalar;
165 return static_cast<Extent<T, N> &>(*this);
166 }

◆ operator+() [1/3]

template<typename T , int N>
Extent< T, N > lsst::geom::ExtentBase< T, N >::operator+ ( ) const
inlinenoexceptinherited

Definition at line 146 of file Extent.h.

146 {
147 return static_cast<Extent<T, N> const &>(*this);
148 }

◆ operator+() [2/3]

template<typename T , int N>
Extent< T, N > lsst::geom::ExtentBase< T, N >::operator+ ( Extent< T, N > const & other) const
inlinenoexceptinherited

Definition at line 132 of file Extent.h.

132 {
133 return Extent<T, N>(this->_vector + other._vector);
134 }

◆ operator+() [3/3]

template<typename T , int N>
Point< T, N > lsst::geom::ExtentBase< T, N >::operator+ ( Point< T, N > const & other) const
noexceptinherited

Definition at line 94 of file Extent.cc.

95 {
96 return Point<T, N>(this->_vector + other.asEigen());
97}

◆ operator+=()

template<typename T , int N>
Extent< T, N > & lsst::geom::ExtentBase< T, N >::operator+= ( Extent< T, N > const & other)
inlinenoexceptinherited

Definition at line 138 of file Extent.h.

138 {
139 this->_vector += other._vector;
140 return static_cast<Extent<T, N> &>(*this);
141 }

◆ operator-() [1/2]

template<typename T , int N>
Extent< T, N > lsst::geom::ExtentBase< T, N >::operator- ( ) const
inlinenoexceptinherited

Definition at line 149 of file Extent.h.

149 {
150 return Extent<T, N>(-this->_vector);
151 }

◆ operator-() [2/2]

template<typename T , int N>
Extent< T, N > lsst::geom::ExtentBase< T, N >::operator- ( Extent< T, N > const & other) const
inlinenoexceptinherited

Definition at line 135 of file Extent.h.

135 {
136 return Extent<T, N>(this->_vector - other._vector);
137 }

◆ operator-=()

template<typename T , int N>
Extent< T, N > & lsst::geom::ExtentBase< T, N >::operator-= ( Extent< T, N > const & other)
inlinenoexceptinherited

Definition at line 142 of file Extent.h.

142 {
143 this->_vector -= other._vector;
144 return static_cast<Extent<T, N> &>(*this);
145 }

◆ operator/()

template<typename T , int N>
Extent< T, N > lsst::geom::ExtentBase< T, N >::operator/ ( T scalar) const
inlinenoexceptinherited

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 167 of file Extent.h.

167 {
168 return Extent<T, N>(this->_vector / scalar);
169 }

◆ operator/=()

template<typename T , int N>
Extent< T, N > & lsst::geom::ExtentBase< T, N >::operator/= ( T scalar)
inlinenoexceptinherited

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 170 of file Extent.h.

170 {
171 this->_vector /= scalar;
172 return static_cast<Extent<T, N> &>(*this);
173 }

◆ operator=() [1/2]

template<typename T , int N>
Extent & lsst::geom::Extent< T, N >::operator= ( Extent< T, N > && other)
default

◆ operator=() [2/2]

template<typename T , int N>
Extent & lsst::geom::Extent< T, N >::operator= ( Extent< T, N > const & other)
default

◆ operator==()

template<typename T , int N>
bool lsst::geom::ExtentBase< T, N >::operator== ( Extent< T, N > const & other) const
inlinenoexceptinherited

Standard equality comparison.

Returns true iff all(this->eq(other));

Definition at line 77 of file Extent.h.

77{ return all(this->eq(other)); }
bool all(CoordinateExpr< N > const &expr) noexcept
Return true if all elements are true.

◆ operator[]() [1/2]

T & lsst::geom::CoordinateBase< Extent< T, N > , T, N >::operator[] ( int n)
inlineinherited

Definition at line 78 of file CoordinateBase.h.

◆ operator[]() [2/2]

T const & lsst::geom::CoordinateBase< Extent< T, N > , T, N >::operator[] ( int n) const
inlineinherited

Definition at line 79 of file CoordinateBase.h.

◆ swap()

template<typename T , int N>
void lsst::geom::Extent< T, N >::swap ( Extent< T, N > & other)
inlinenoexcept

Definition at line 245 of file Extent.h.

245{ this->_swap(other); }
void _swap(CoordinateBase &other) noexcept

◆ toString()

template<typename T , int N>
std::string lsst::geom::ExtentBase< T, N >::toString ( ) const
inlineinherited

Cast this object to an Extent of the same numeric type and dimensionality.

Definition at line 179 of file Extent.h.

179 {
181 out << "Extent(";
182 for (size_t i = 0; i < N; ++i) {
183 if (i != 0) {
184 out << ",";
185 }
186 out << (*this)[i];
187 }
188 out << ")";
189 return out.str();
190 }
T str(T... args)

Friends And Related Symbol Documentation

◆ allclose()

bool allclose ( CoordinateBase< Extent< T, N > , T, N > const & a,
CoordinateBase< Extent< T, N > , T, N > const & b,
T rtol = static_cast<T>(1E-5),
T atol = static_cast<T>(1E-8) )
related

Floating-point comparison with tolerance.

Interface, naming, and default tolerances matches Numpy.

Definition at line 120 of file CoordinateBase.cc.

Member Data Documentation

◆ _vector

EigenVector lsst::geom::CoordinateBase< Extent< T, N > , T, N >::_vector
protectedinherited

Definition at line 109 of file CoordinateBase.h.

◆ dimensions

int const lsst::geom::CoordinateBase< Extent< T, N > , T, N >::dimensions
staticinherited

Definition at line 58 of file CoordinateBase.h.

◆ IS_ELEMENT_NOTHROW_ASSIGNABLE

bool constexpr lsst::geom::CoordinateBase< Extent< T, N > , T, N >::IS_ELEMENT_NOTHROW_ASSIGNABLE
staticconstexprinherited

Definition at line 61 of file CoordinateBase.h.

◆ IS_ELEMENT_NOTHROW_COPYABLE

bool constexpr lsst::geom::CoordinateBase< Extent< T, N > , T, N >::IS_ELEMENT_NOTHROW_COPYABLE
staticconstexprinherited

Definition at line 60 of file CoordinateBase.h.


The documentation for this class was generated from the following files: