The Gaudi Framework  master (f31105fd)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Concepts.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include <concepts>
14 
15 class InterfaceID;
16 
17 namespace Gaudi {
18  template <typename T>
19  concept IsInterface = requires {
20  { T::interfaceID() } -> std::same_as<const InterfaceID&>;
21  };
22 } // namespace Gaudi
Gaudi::IsInterface
concept IsInterface
Definition: Concepts.h:19
Gaudi
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition: __init__.py:1
Gaudi::Functional::details::requires
requires(is_optional_v< OptOut >) void put(const OutHandle &out_handle
InterfaceID
Definition: IInterface.h:39