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

时间:2014-10-23 16:48:58

标签: c++ boost c++-concepts

我开始使用Boost concept check library。但是,在阅读文档之后,我似乎找不到一种方法来验证概念中的方法是否返回某种类型。但是,我没有看到任何说这也不可能的事情,这很奇怪。

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

1 个答案:

答案 0 :(得分:2)

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");
}

我认为第二段代码不需要任何评论。