10 template <
typename TContainer>
13 TContainer&& container;
15 using RawType = std::decay_t<TContainer>;
19 : container(
std::forward<TContainer>(container)) {}
21 template <
typename TValue>
23 const typename RawType::Type t2 = value;
24 for (
const auto& t1 : container) {
32 template <
typename TValue>
34 return !(*
this == value);
37 template <
typename TValue>
39 const typename RawType::Type t2 = value;
40 for (
const auto& t1 : container) {
48 template <
typename TValue>
50 const typename RawType::Type t2 = value;
51 for (
const auto& t1 : container) {
59 template <
typename TValue>
61 return !(*
this >= value);
64 template <
typename TValue>
66 return !(*
this > value);
70 stream << wrapper.container;
75 template <
typename TContainer>
Common macros and basic objects.
#define NAMESPACE_SPH_END
PerElementWrapper< TContainer > perElement(TContainer &&container)
bool operator==(const TValue &value) const
bool operator<(const TValue &value) const
friend std::ostream & operator<<(std::ostream &stream, const PerElementWrapper &wrapper)
PerElementWrapper(TContainer &&container)
bool operator!=(const TValue &value) const
bool operator>(const TValue &value) const
bool operator<=(const TValue &value) const
bool operator>=(const TValue &value) const
Overload of std::swap for Sph::Array.