不完全类型的概念求值标准预期结果是什么?
不完全类型的概念求值标准预期结果是什么?
咱们先看一个实际的代码场景:当我们用一个不完全类型去求值标准库中的概念时,比如下面这段代码:
#include <concepts> int main() { struct S; // S是不完全类型 return std::destructible<S>; }
按照C++标准的规定,这段程序应该给出什么结果呢?
实际测试下来,不同编译器的表现差异很明显:
- EDG编译器运行后会返回
1,也就是说它判定std::destructible<S>对这个不完全类型S是成立的 - GCC和MSVC则都会返回
0,认为该概念对S不成立 - 而搭配
libc++的Clang直接编译失败,根本到不了运行阶段
内容来源于stack exchange
相关产品推荐
相关产品推荐

