core: Move EventMemberImplObjTraits to namespace internal

This commit is contained in:
André Apitzsch
2024-03-08 11:17:12 +01:00
committed by Tommaso Pecorella
parent f80f94178c
commit 1fcf7c4c4b
2 changed files with 12 additions and 1 deletions

View File

@@ -94,6 +94,9 @@ EventImpl* MakeEvent(T function);
namespace ns3
{
namespace internal
{
/**
* \ingroup events
* Helper for the MakeEvent functions which take a class method.
@@ -130,6 +133,8 @@ struct EventMemberImplObjTraits<T*>
}
};
} // namespace internal
template <typename MEM, typename OBJ, typename... Ts>
std::enable_if_t<std::is_member_pointer_v<MEM>, EventImpl*>
MakeEvent(MEM mem_ptr, OBJ obj, Ts... args)
@@ -154,7 +159,8 @@ MakeEvent(MEM mem_ptr, OBJ obj, Ts... args)
{
std::apply(
[this](Ts... args) {
(EventMemberImplObjTraits<OBJ>::GetReference(m_obj).*m_function)(args...);
(internal::EventMemberImplObjTraits<OBJ>::GetReference(m_obj).*
m_function)(args...);
},
m_arguments);
}

View File

@@ -401,6 +401,9 @@ struct CallbackTraits<Ptr<T>>
}
};
namespace internal
{
// Duplicate of struct EventMemberImplObjTraits<T> as defined in make-event.h
// We repeat it here to declare a specialization on Ptr<T>
// without making this header dependent on make-event.h
@@ -428,6 +431,8 @@ struct EventMemberImplObjTraits<Ptr<T>>
}
};
} // namespace internal
} // namespace ns3
namespace ns3