The Gaudi Framework  v36r7 (7f57a304)
Gaudi::Monitoring::details Namespace Reference

Classes

struct  MergeAndResetBase
 

Typedefs

template<typename T >
using has_merge_and_reset_ = decltype(std::declval< T >().mergeAndReset(std::declval< T && >()))
 
using MergeAndReset_t = void(*)(void *, void *)
 

Functions

template<typename T >
MergeAndReset_t makeMergeAndResetFor ()
 

Variables

template<typename T >
constexpr bool has_merge_and_reset_v = Gaudi::cpp17::is_detected_v<has_merge_and_reset_, T>
 

Typedef Documentation

◆ has_merge_and_reset_

template<typename T >
using Gaudi::Monitoring::details::has_merge_and_reset_ = typedef decltype( std::declval<T>().mergeAndReset( std::declval<T&&>() ) )

Definition at line 27 of file MonitoringHub.h.

◆ MergeAndReset_t

using Gaudi::Monitoring::details::MergeAndReset_t = typedef void ( * )( void*, void* )

Definition at line 36 of file MonitoringHub.h.

Function Documentation

◆ makeMergeAndResetFor()

template<typename T >
MergeAndReset_t Gaudi::Monitoring::details::makeMergeAndResetFor ( )

Definition at line 39 of file MonitoringHub.h.

39  {
40  if constexpr ( has_merge_and_reset_v<T> ) {
41  return []( void* ptr, void* other ) {
42  reinterpret_cast<T*>( ptr )->mergeAndReset( std::move( *reinterpret_cast<T*>( other ) ) );
43  };
44  } else {
45  return []( void*, void* ) {};
46  }
47  }

Variable Documentation

◆ has_merge_and_reset_v

template<typename T >
constexpr bool Gaudi::Monitoring::details::has_merge_and_reset_v = Gaudi::cpp17::is_detected_v<has_merge_and_reset_, T>
inlineconstexpr

Definition at line 29 of file MonitoringHub.h.

std::move
T move(T... args)