Skip to content

AsgTools: Fix clang compilation issues.

Scott Snyder requested to merge ssnyder/athena:clang.AsgTools-20230913 into main

In AsgToolHandle, we have overloads like

    template <class T2> StatusCode
    setProperty (const std::string& property, const T2& value);
    template <class T2> StatusCode
    setProperty (const std::string& property, const ToolHandle<T2>& value);

However, ToolHandle has a constructor which can accept an integer. When called like

tool.setProperty<int> ("propertyInt", 42)

some versions of clang were using the second overload rather than the first.

Use enable_if to ensure that the ToolHandle/ToolHandleArray overloads are not used for types which can't be tools.

Merge request reports