是否可以使用Boost概念检查库验证方法返回类型

Is it possible to verify method return types using the Boost concept check library?

本文关键字:验证 方法 返回类型 检查 可以使 Boost 是否      更新时间:2023-10-16

我已经开始使用Boost概念检查库。然而,在阅读了文档之后,我似乎没有找到一种方法来验证概念中的方法是否返回某个类型。然而,我也没有看到任何迹象表明这是不可能的,这很奇怪。

那么,如果返回类型不正确,是否可以编写一个会失败的概念呢?

double pi(){
    return 3.1415;
}
int main(){
    int int_pi{pi()};
}

当使用{}初始化变量时需要转换,导致信息丢失,这是编译错误。

或者:

#include <type_traits>
int main(){
    static_assert(std::is_same<decltype(pi()), double>::value, "pi() must return double");
}

我认为第二个代码不需要任何注释。