发布网友 发布时间:2022-10-16 12:15
共3个回答
热心网友 时间:2023-10-18 22:32
要查看一个类是否存在如这样的表达式Class.member(...)。
那么这里,在decltype内部的逗号运算表达式,如果存在这样的形式,那么就可以匹配逗号表达式的第一个std::declval<U>().member(std::declval<Args>()...)说明存在这样的函数,又由于逗号表达式返回的时最后逗号的右边的值
实际decltype推导的类型是std::true_type类型,应为decltype只能根表达式,所以我们实例化一个std::true_type的对象,用其的构造函数作为表达式,那么如果存在指定函数名的表达时,这Check(int)函数的返回值类型就为std::true_type。
热心网友 时间:2023-10-18 22:33
需要的时候才加函数热心网友 时间:2023-10-18 22:33
C++一般不这么判断,什么情况下需要这么做呢?