首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Concept检查函数是否具有确切的返回类型?

如何使用Concept检查函数是否具有确切的返回类型?
EN

Stack Overflow用户
提问于 2021-09-22 07:11:30
回答 1查看 113关注 0票数 1

有一个std::convertible_to<T>的概念,用来检查调用的结果是否可以转换成某种类型。

但是我想检查一个函数是否有确切的返回类型。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2021-09-22 07:25:54

您可以编写一个使用std::same_as检查函数返回类型的概念:

示例:

代码语言:javascript
复制
#include <concepts> // std::same_as

template<typename FuncType, typename RetType>
concept SameReturn = requires(FuncType func) {
    { func() } -> std::same_as<RetType>;
};

template<typename Callable> requires SameReturn<Callable, int>
auto test(Callable func)
{
    return func();
}

int main()
{
    std::cout << test([]() {return 1; });
    // std::cout << test([]() {return "string literals"; }); // error!
    return 0;
} 

()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69279698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档