diff --git a/cmake/templates/conf.py.in b/cmake/templates/conf.py.in
index 7392b345fc6d..95d20e445fe9 100644
--- a/cmake/templates/conf.py.in
+++ b/cmake/templates/conf.py.in
@@ -206,9 +206,14 @@ breathe_doxygen_config_options = {
'MACRO_EXPANSION': 'YES',
'DIRECTORY_GRAPH': 'NO',
'PREDEFINED': '@doxygen_definitions@',
- 'STRIP_FROM_PATH': hpx_source_dir
+ 'STRIP_FROM_PATH': hpx_source_dir,
+ 'ALIASES': r'namedrequirement{1}="\1"'
}
+# ! this should work but doesn't. check after updating breathe version.
+# breathe_doxygen_aliases = {
+# }
+
numfig = True
primary_domain = 'cpp'
highlight_language = 'cpp'
diff --git a/libs/core/synchronization/include/hpx/synchronization/condition_variable.hpp b/libs/core/synchronization/include/hpx/synchronization/condition_variable.hpp
index ddeb5548ee3f..ad0ecee3de1d 100644
--- a/libs/core/synchronization/include/hpx/synchronization/condition_variable.hpp
+++ b/libs/core/synchronization/include/hpx/synchronization/condition_variable.hpp
@@ -86,16 +86,19 @@ namespace hpx {
/// \a hpx::condition_variable works only with \a std::unique_lock.
/// This restriction allows for maximal efficiency on some platforms.
/// \a hpx::condition_variable_any provides a condition variable that works
- /// with any \a BasicLockable object, such as \a std::shared_lock.
+ /// with any \namedrequirement{BasicLockable} object, such as
+ /// \a std::shared_lock.
///
/// Condition variables permit concurrent invocation of the \a wait,
/// \a wait_for, \a wait_until, \a notify_one and \a notify_all member
/// functions.
///
- /// The class \a hpx::condition_variable is a \a StandardLayoutType.
- /// It is not \a CopyConstructible, \a MoveConstructible, \a CopyAssignable,
- /// or \a MoveAssignable.
- ///
+ /// The class \a hpx::condition_variable is a
+ /// \namedrequirement{StandardLayoutType}.
+ /// It is not \namedrequirement{CopyConstructible},
+ /// \namedrequirement{MoveConstructible},
+ /// \namedrequirement{CopyAssignable}, or
+ /// \namedrequirement{MoveAssignable}.
///
class condition_variable
{
@@ -507,13 +510,15 @@ namespace hpx {
/// \brief The \a condition_variable_any class is a generalization of
/// \a hpx::condition_variable. Whereas \a hpx::condition_variable works
/// only on \a std::unique_lock, \a acondition_variable_any can
- /// operate on any lock that meets the \a BasicLockable requirements.
+ /// operate on any lock that meets the \namedrequirement{BasicLockable}
+ /// requirements.
///
/// See \a hpx::condition_variable for the description of the semantics of
/// condition variables.
- /// The class \a hpx::condition_variable_any is a \a StandardLayoutType. It
- /// is not \a CopyConstructible, \a MoveConstructible, \a CopyAssignable,
- /// or \a MoveAssignable.
+ /// It is not \namedrequirement{CopyConstructible},
+ /// \namedrequirement{MoveConstructible},
+ /// \namedrequirement{CopyAssignable}, or
+ /// \namedrequirement{MoveAssignable}.
///
class condition_variable_any
{
@@ -675,8 +680,9 @@ namespace hpx {
///
/// \tparam Lock Type of \a lock.
///
- /// \param lock An object of type Lock that meets the \a BasicLockable
- /// requirements, which must be locked by the current thread
+ /// \param lock An object of type Lock that meets the
+ /// \namedrequirement{BasicLockable} requirements, which
+ /// must be locked by the current thread
/// \param ec Used to hold error code value originated during the
/// operation. Defaults to \a throws -- A special'throw on
/// error' \a error_code.
@@ -740,8 +746,9 @@ namespace hpx {
/// \tparam Lock Type of \a lock.
/// \tparam Predicate Type of \a pred.
///
- /// \param lock an object of type Lock that meets the \a BasicLockable
- /// requirements, which must be locked by the current thread
+ /// \param lock an object of type Lock that meets the
+ /// \namedrequirement{BasicLockable} requirements, which
+ /// must be locked by the current thread
/// \param pred predicate which returns `false` if the waiting should
/// be continued `(bool(pred()) == false)`.
/// The signature of the predicate function should be
@@ -785,7 +792,8 @@ namespace hpx {
/// \tparam Lock Type of \a lock.
///
/// \param lock an object of type \a Lock that meets the
- /// requirements of \a BasicLockable, which must be
+ /// requirements of
+ /// \namedrequirement{BasicLockable}, which must be
/// locked by the current thread
/// \param abs_time represents the time when waiting should be stopped.
/// \param ec used to hold error code value originated during the
@@ -860,8 +868,8 @@ namespace hpx {
/// \tparam Predicate Type of \a pred.
///
/// \param lock an object of type \a Lock that meets the
- /// requirements of \a BasicLockable, which must be
- /// locked by the current thread
+ /// requirements of \namedrequirement{BasicLockable},
+ /// which must be locked by the current thread
/// \param abs_time represents the time when waiting should be stopped.
/// \param pred predicate which returns \a false if the waiting
/// should be continued
@@ -916,8 +924,8 @@ namespace hpx {
/// \tparam Lock Type of \a lock.
///
/// \param lock an object of type \a Lock that meets the
- /// \a BasicLockable requirements, which must be locked
- /// by the current thread.
+ /// \namedrequirement{BasicLockable} requirements,
+ /// which must be locked by the current thread.
/// \param rel_time an object of type \a hpx::chrono::duration
/// representing the maximum time to spend waiting. Note
/// that \a rel_time must be small enough not to
@@ -962,7 +970,8 @@ namespace hpx {
/// \tparam Predicate Type of \a pred.
///
/// \param lock an object of type \a Lock that meets the
- /// \a BasicLockable requirements, which must be locked
+ /// \namedrequirement{BasicLockable} requirements,which
+ /// must be locked
/// by the current thread.
/// \param rel_time an object of type \a hpx::chrono::duration
/// representing the maximum time to spend waiting. Note
@@ -1021,9 +1030,9 @@ namespace hpx {
/// \tparam Lock Type of \a lock.
/// \tparam Predicate Type of \a pred.
///
- /// \param lock an object of type Lock that meets the \a BasicLockable
- /// requirements, which must be locked by the current
- /// thread
+ /// \param lock an object of type Lock that meets the
+ /// \namedrequirement{BasicLockable} requirements, which
+ /// must be locked by the current thread
/// \param stoken a \a hpx::stop_token to register interruption for
/// \param pred predicate which returns `false` if the waiting should
/// be continued `(bool(pred()) == false)`.
@@ -1111,8 +1120,8 @@ namespace hpx {
/// \tparam Predicate Type of \a pred.
///
/// \param lock an object of type \a Lock that meets the
- /// requirements of \a BasicLockable, which must be
- /// locked by the current thread.
+ /// requirements of \namedrequirement{BasicLockable},
+ /// which must be locked by the current thread.
/// \param stoken a \a hpx::stop_token to register interruption for.
/// \param abs_time represents the time when waiting should be stopped.
/// \param pred predicate which returns \a false if the waiting
@@ -1207,8 +1216,8 @@ namespace hpx {
/// \tparam Predicate Type of \a pred.
///
/// \param lock an object of type \a Lock that meets the
- /// \a BasicLockable requirements, which must be locked
- /// by the current thread.
+ /// \namedrequirement{BasicLockable} requirements,
+ /// which must be locked by the current thread.
/// \param stoken a \a hpx::stop_token to register interruption for.
/// \param rel_time an object of type \a hpx::chrono::duration
/// representing the maximum time to spend waiting. Note
diff --git a/libs/core/synchronization/include/hpx/synchronization/mutex.hpp b/libs/core/synchronization/include/hpx/synchronization/mutex.hpp
index 823d0d823f77..ba918f0c7159 100644
--- a/libs/core/synchronization/include/hpx/synchronization/mutex.hpp
+++ b/libs/core/synchronization/include/hpx/synchronization/mutex.hpp
@@ -52,7 +52,7 @@ namespace hpx {
/// The behavior of a program is undefined if a \a mutex is
/// destroyed while still owned by any threads, or a thread
/// terminates while owning a \a mutex. The mutex class satisfies
- /// all requirements of \a Mutex and \a StandardLayoutType.
+ /// all requirements of \namedrequirement{Mutex} and \namedrequirement{StandardLayoutType}.
///
/// \a hpx::mutex is neither copyable nor movable.
///
@@ -242,7 +242,8 @@ namespace hpx {
/// \a timed_mutex with a timeout via the member functions
/// \a try_lock_for() and \a try_lock_until().
/// The \a timed_mutex class satisfies all requirements of
- /// \a TimedMutex and \a StandardLayoutType.
+ /// \namedrequirement{TimedMutex} and
+ /// \namedrequirement{StandardLayoutType}.
///
/// \a hpx::timed_mutex is neither copyable nor movable.
///