13#ifndef dealii_table_indices_h
14#define dealii_table_indices_h
45 "TableIndices objects need to represent at least one index.");
62 template <
typename... T>
74 constexpr std::size_t &
102 template <
class Archive>
118template <
typename...
T>
120 : indices{static_cast<
std::size_t>(args)...}
124 "Not all of the parameters have integral type!");
125 static_assert(
sizeof...(T) == N,
"Wrong number of constructor arguments!");
130constexpr inline std::size_t
139constexpr inline std::size_t &
151 return std::equal(std::begin(indices),
161 return !(*
this == other);
169 std::sort(std::begin(indices), std::end(indices));
174template <
class Archive>
193 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)