c++ - std::same_as 和 std::is_same 之间的区别
问题描述
我正在阅读 的文档,std::same_as
看起来它只是转发到std::is_same_v
. cppreference 具有以下示例实现:
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>;
如果是可交换的,为什么&&
偶数是必要的?std::is_same_v
如果std::same_as
具有相同的语义,我需要它做什么?我也可以std::is_same_v
用作这样的约束:
template <typename T>
void test(T x) requires std::is_same_v<T, int> {}
解决方案
推荐阅读
- tfs - 为什么这是 tfs 中毫无根据的合并?
- python - 为什么 Seaborn 会在我的数据中创建一个额外的类别?
- python - numpy 数组转换(拆分 int 无需转换为字符串)
- java - 如何并行化高斯消除算法?
- java - 如何将现有的 tomcat 应用程序迁移到 AWS?
- python - Pythonic 用变量中可能的 None 对类进行排序的方法
- laravel - Laravel-vue jwt 令牌刷新
- django - 如何正确序列化其模型具有外键且也采用 ImageField 的对象?
- java - 如何获取 ScrollView 的每个 EditText 语音结果
- javascript - HTML Flows Strange(内容出现在错误的位置?)