Constrain Property member functions
Modernises Gaudi::Property by replacing SFINAE patterns with C++20 constraints. Comparison, arithmetic, assignment, and utility member functions are now conditionally enabled using requires expressions. Assignment now supports both assignable and constructible types, and an explicit initializer-list assignment is added. Overall, improves type safety, diagnostics, and readability without changing behaviour.
(continuation of / follow up to !1863)
Edited by Gerhard Raven