12#include <boost/mp11.hpp>
49template <
typename Tuple>
50using PrevStateOf = boost::mp11::mp_transform<PrevState, Tuple>;
54template <
typename... Ts, std::size_t... Idcs>
56 std::tuple<Ts...>
const& current_states,
57 std::index_sequence<Idcs...>)
59 ((std::get<Idcs>(prev_states) = std::get<Idcs>(current_states)), ...);
64template <
typename... Ts>
66 std::tuple<Ts...>
const& current_states)
69 std::make_index_sequence<
sizeof...(Ts)>{});
80static constexpr double nan = std::numeric_limits<double>::quiet_NaN();
void assign(std::tuple< PrevState< Ts >... > &prev_states, std::tuple< Ts... > const ¤t_states, std::index_sequence< Idcs... >)
boost::mp11::mp_transform< PrevState, Tuple > PrevStateOf
Applies PrevState to a tuple of constitutive data.
static constexpr double nan
Convenience alias for not a number.
void assign(std::tuple< PrevState< Ts >... > &prev_states, std::tuple< Ts... > const ¤t_states)
Assigns a tuple of current states to a tuple of previous states.
Represents a previous state of type T.
T const * operator->() const
PrevState< T > & operator=(T &&u)
T const & operator*() const
PrevState< T > & operator=(T const &u)
ParameterLib::SpatialPosition x