6namespace Stroika::Foundation::Containers::Adapters {
13 template <IAddableTo CONTAINER_TYPE>
14 inline void Adder<CONTAINER_TYPE>::Add (CONTAINER_TYPE* container, Common::ArgByValueType<value_type> value)
17 using CONTAINER_ELT_TYPE =
typename CONTAINER_TYPE::value_type;
18 if constexpr (
requires (CONTAINER_TYPE p) { p.push_back (declval<CONTAINER_ELT_TYPE> ()); }) {
19 container->push_back (value);
21 else if constexpr (
requires (CONTAINER_TYPE p) { p.push_front (declval<CONTAINER_ELT_TYPE> ()); }) {
22 container->push_front (value);
24 else if constexpr (
requires (CONTAINER_TYPE p) { p.Add (declval<CONTAINER_ELT_TYPE> ()); }) {
25 container->Add (value);
27 else if constexpr (
requires (CONTAINER_TYPE p) { p.insert (declval<CONTAINER_ELT_TYPE> ()); }) {
28 container->insert (value);
#define AssertNotImplemented()
#define RequireNotNull(p)