C ++ 2a合同编程和编译器

时间:2018-12-11 05:33:52

标签: c++ gcc clang contract c++20

我有兴趣研究最近被接受的contract programming for C++20以便进行学习和调查。

在寻找编译器支持时,我很失望找不到任何东西。 gccclang都非常清楚,它们在其--std=c++2a模式下不支持此功能。

由于该批准是最近才批准的,所以对于当前的编译器不支持所建议的确切语义,我并不感到惊讶。不过,令我感到惊讶的是,绝对没有任何东西,甚至没有编译器特定的扩展,它甚至可以以有限的方式模仿相同的功能。

我希望C ++委员会只考虑通过编译器或特定于目标扩展的特性在现场证明自己的功能。批准用于C ++ 20的此功能表明该功能应可在某处访问。但是到目前为止,我一直找不到它。

目前是否可以尝试C ++合约编程?甚至使用一组特定于编译器的扩展?

2 个答案:

答案 0 :(得分:4)

您可能想尝试this用Clang进行实验性合同实施。

答案 1 :(得分:1)

2019年7月在科隆举行的WG21会议同意从C ++ 20工作草案中删除合同。请参阅Nicolai Josuttis here的提案P1823。