c++ - 如何为类型要求匹配某种类型
问题描述
有没有办法强制概念中的类型要求与特定类型匹配?Fe 分配器中的 size_type 是 size_t 还是可转换为 size_t ?
解决方案
是的,你可以通过使用来做到这一点,covertible_to<T>
看看下面的例子。使用convertible_to
您可以检查一个类型是否可转换为另一种类型。
#include <concepts>
#include <string>
template<typename T>
concept Convertable = requires(T a) {
{ a } -> std::convertible_to<std::size_t>;
};
template<Convertable T>
class Test{
};
int main(){
Test<int> a;
Test<std::string> b; //Compilation will fail.
}
推荐阅读
- sed - sed 不会用特殊字符替换字符串
- date - Bi 每月日期,如何?
- python - 向 Flask 发出 POST 请求并取回数据
- swift - macOS 远程推送通知不显示警报横幅
- django-tinymce - 配置 TinyMCE 标记使用(强-> B 等)(Django-tinymce)
- mysql - 编写删除前触发器以仅根据属性计数进行删除
- java - 无法自动选择 JOption 窗格 showInputDialog
- c++ - 如何用字符串初始化声明的 istringstream?
- c - 如何在数组中查找元素的位置(C 编程)
- ruby-on-rails - Rails 测试环境中的确认链接呈现: Forbidden You don't have permission to access /users/confirmation on this server