TS ranges: same concept different from std :: is_same?

I looked at posted TS documentation on cppreference.com , and in the entry for the concept, SameI came across this sentence:

In order to verify restrictions Same<T, U>()implied Same<U, T>().

and note:

The additional constraint checking requirement is different Samefrom std::is_sameand usually requires a compiler implementation.

It seemed a little strange to me, so I decided to check out the Ranges TS , and of course it says:

Note. For the purpose of checking constraints is Same<T, U>()implied Same<U, T>().

(However, the Casey Carter STL2 implementation usesstd::is_same , perhaps because the required internal compiler code does not yet exist.)

So my question is: what exactly does “ Same<T, U>()mean Same<U, T>()mean ? How would it be possible to be std::is_same<T, U>different from std::is_same<U, T>?

+4
source share

Source: https://habr.com/ru/post/1673537/


All Articles