C++20在concept中引入了is_same/is_same_v的简化使用版:same_as
其内部就是通过is_same_v实现的:
namespace detail {
template< class T, class U >
concept SameHelper = std::is_same_v<T, U>;
}template< class T, class U >
concept same_as = detail::SameHelper<T, U> && detail::SameHelper<U, T>
#include <concepts>
#include <iostream>
using namespace std;
int main()
{
cout<<same_as<int, long><<endl;
cout<<same_as<int, int32_t><<endl;
return 0;
}
运行程序输出:
0
1