我正在浏览Ranges TS documentation on cppreference.com,在Same
概念的条目中,我遇到了这句话:
出于约束检查的目的,
Same<T, U>()
暗示Same<U, T>()
。
并注意:
约束检查的附加要求将
Same
与std::is_same
区分开来,并且通常需要编译器内在实现。
这让我觉得有点奇怪,所以我决定查看Ranges TS paper,当然,它说:
备注:出于约束检查的目的,
Same<T, U>()
暗示Same<U, T>()
。
(但是,Casey Carter的STL2实现does use std::is_same
,可能是因为所需的编译器内在函数尚未存在。)
所以我的问题是,这个要求究竟是什么&#34; Same<T, U>()
暗示Same<U, T>()
&#34;实际上意味着std::is_same<T, U>
与std::is_same<U, T>
有何不同?