16#ifndef dealii_table_indices_h
17#define dealii_table_indices_h
48 "TableIndices objects need to represent at least one index.");
65 template <
typename... T>
77 constexpr std::size_t &
105 template <
class Archive>
121template <
typename... T>
123 : indices{static_cast<
std::size_t>(args)...}
126 std::is_integral<T>::value...>::value,
127 "Not all of the parameters have integral type!");
128 static_assert(
sizeof...(T) == N,
"Wrong number of constructor arguments!");
133constexpr inline std::size_t
142constexpr inline std::size_t &
154 return std::equal(std::begin(indices),
164 return !(*
this == other);
172 std::sort(std::begin(indices), std::end(indices));
177template <
class Archive>
196 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)