Implementations of C++20 concepts and requires#120
Conversation
…aits to RandomIteratorTraits.h
…CN1/2.inl constraint bugs
|
Thank you @dbrundu , really great job done here. From my side, I think the PR got to a mostly ready to merge point. No additional code is needed, just some operations from my side. So, in the next days I will review the changes, test the examples and try to find some GPU available around to run the cuda based executables. As you know well, if past is a good predictor of the future, and usually it is, in Hydra, once code is valid enough to compile, runtime errors are unlikely to occur. But even like that, we still need to check things are running as they should. My next steps will be: 1 - test code directly on your fork/branch Please, stay tunned. And once again, Thanks! |
|
Thanks @AAAlvesJr for the support. For documentation I add here the tests I did:
Please note that this covers the non-Minuit2 examples because I didn't run with ROOT/Minuit2 available. |
correct small bug on StatsPHSP
Sync fork from develop-hydra4 branch of head repository
…cc error on incomplete RngFormula<T> when the trait is probed with a non-functor
We implemented C++20
conceptsin Hydra and introducedrequiresstatements, in order to replace many verbose constraints on template arguments to take benefit of SFINAE rule, by usingenable_if<>.Tested compilation:
Host backends (CPP / OMP / TBB): full build of the examples + test suite, all unit tests pass (Catch2). GCC 15.2.1, --std=c++20.
CUDA backend: compiles cleanly under nvcc CUDA 12.6.2 (nvcc V12.6.77, host compiler GCC 11.4.0), --std=c++20, -arch=sm_70. The full example set + test suite were compile-verified.