15#ifndef dealii_table_indices_h
16#define dealii_table_indices_h
47 "TableIndices objects need to represent at least one index.");
64 template <
typename... T>
76 constexpr std::size_t &
104 template <
class Archive>
120template <
typename... T>
122 : indices{static_cast<
std::size_t>(args)...}
126 "Not all of the parameters have integral type!");
127 static_assert(
sizeof...(T) == N,
"Wrong number of constructor arguments!");
132constexpr inline std::size_t
141constexpr inline std::size_t &
153 return std::equal(std::begin(indices),
163 return !(*
this == other);
171 std::sort(std::begin(indices), std::end(indices));
176template <
class Archive>
195 for (
unsigned int i = 0; i < N; ++i)
void serialize(Archive &ar, const unsigned int version)
constexpr std::size_t & operator[](const unsigned int i)
DEAL_II_HOST constexpr void sort()
constexpr std::size_t operator[](const unsigned int i) const
constexpr TableIndices(const T... indices)
constexpr TableIndices()=default
constexpr bool operator==(const TableIndices< N > &other) const
constexpr bool operator!=(const TableIndices< N > &other) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_CONSTEXPR
#define DEAL_II_NAMESPACE_CLOSE
#define AssertIndexRange(index, range)
std::ostream & operator<<(std::ostream &out, const TableIndices< N > &indices)