News for hackers. Stuff that matters.
Re:Writing Complex Macros in Rust: Reverse Polish Notation by pjmlp on Thursday February 01, 2018 @01:42PM (#16284471)
Concepts are on track for C++20 and they are already available on gcc to play with.

Besides that, it is already possible to use typed templates in C++, at least with any C++14 compiler and even better on C++17, even if it requires a bit more of effort for the implementer of the generic code.

Basically by making use of type traits, static asserts, constexpr if and enable_if.

Yes, it isn't as clean as Rust but as shown by Andrei Alexandrescu with D, it opens the door for very powerful designs.

Re:Writing Complex Macros in Rust: Reverse Polish Notation by ogoffart on Thursday February 01, 2018 @07:43PM (#16287358)
But the C++20 concepts is only concept lite. It does not check the implementation of the template function that it only uses operations available for the conceps.

suppose you have a concept Hashable that is only enabled for type with a hash() function. But you can still in the code of your HashMap do a comparison with the < operator, which the Hashable concept don't ensure. In that case you woud only have an error at instentiation type for Hashable types that don't have '<'

In Rust, the compiler make sure that your generic function only use operations that exits in the traits declared in the function signature.