我开始使用Boost concept check library。但是,在阅读文档之后,我似乎找不到一种方法来验证概念中的方法是否返回某种类型。但是,我没有看到任何说这也不可能的事情,这很奇怪。
那么,如果返回类型不正确,是否有可能编写一个失败的概念?
答案 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");
}
我认为第二段代码不需要任何评论。