ToolHandleArray of Service: Problem with initializer-list

While working on some ATLAS code, I discovered that ToolHandleArrays used by Services can't be constructed with the initializer-list syntax.

I get:

/home/wlampl/master2/athena/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.h:191:92:   required from here
/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc8-opt/2020-04-26T2145/GAUDI/22.0.13/InstallArea/x86_64-centos7-gcc8-opt/include/GaudiKernel/ToolHandle.h:390:12: error: 'class AthenaPoolCnvSvc' has no member named 'addToolsArray'
     owner->addToolsArray( *this );

And indeed, grep'ing for addToolsArray in the Gaudi-repo:

GaudiKernel/Gaudi/Algorithm.h:      addToolsArray( hndlArr );
GaudiKernel/Gaudi/Algorithm.h:    void addToolsArray( ToolHandleArray<T>& hndlArr ) {
GaudiKernel/GaudiKernel/AlgTool.h:    addToolsArray( hndlArr );
GaudiKernel/GaudiKernel/AlgTool.h:  void addToolsArray( ToolHandleArray<T>& hndlArr ) {
GaudiKernel/GaudiKernel/ToolHandle.h:    owner->addToolsArray( *this );
GaudiKernel/GaudiKernel/ToolHandle.h:    owner->addToolsArray( *this );

Algorithms and AlgTools have an addToolsArray method, but Services do not have it.

  • Walter
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information