Closed iarspider closed 1 year ago
Hi @iarspider, thanks for reaching out. If I interpret your command line correctly you are trying to compile the CUDA back-end in C++20 mode with g++-12, right?
@j-stephan yes, exactly.
Thanks for reporting this. It uncovered a gap in our CI test matrix which we need to fill. Afterwards we'll look into your error.
As far as I understand, in C++20 one should use bare (templated) class name without template specialization in constructor and destructor names, i.e. this
template<typename T> struct S { S<T>(); };
is no longer valid, and should be replaced with
template<typename T> struct S { S(); };
I am surprised this even worked before C++20. I always thought the constructor can only be named through the injected class name, which is S
in that case.
I will post a fix.
It's a breaking change in c++20: https://cplusplus.github.io/CWG/issues/2237.html .
Hello,
we are testing CMSSW software with C++20, and we observe the following error coming from Alpaka:
As far as I understand, in C++20 one should use bare (templated) class name without template specialization in constructor and destructor names, i.e. this
is no longer valid, and should be replaced with
(same applies to destructors)