Allow concrete services to be used in ServiceHandle<T>
Modify ServiceHandle to fall back on dynamic_cast if the template argument is not an abstract interface. This is similar to the way ToolHandle works for concrete tools. This also adds the new header Gaudi/Concepts.h to host C++20 concepts of common utility, starting from Gaudi::IsInterface<T>.
Showing
- GaudiKernel/include/Gaudi/Concepts.h 22 additions, 0 deletionsGaudiKernel/include/Gaudi/Concepts.h
- GaudiKernel/include/GaudiKernel/ServiceHandle.h 22 additions, 3 deletionsGaudiKernel/include/GaudiKernel/ServiceHandle.h
- GaudiTestSuite/CMakeLists.txt 1 addition, 0 deletionsGaudiTestSuite/CMakeLists.txt
- GaudiTestSuite/src/UseSvcWithoutInterface.cpp 45 additions, 0 deletionsGaudiTestSuite/src/UseSvcWithoutInterface.cpp
- GaudiTestSuite/tests/pytest/handles/test_svc_without_interface.py 53 additions, 0 deletions...tSuite/tests/pytest/handles/test_svc_without_interface.py
Loading
Please register or sign in to comment