我有兴趣研究最近接受的C++20 的合约编程 https://en.cppreference.com/w/cpp/language/attributes/contract用于学习和调查目的。
当我四处寻找编译器支持时,我很失望没有找到任何支持。两个都gcc
and clang
很明显他们不支持此功能--std=c++2a
mode.
由于批准是最近才进行的,因此我对当前编译器不支持所提议的确切语义并不感到太惊讶。但令我更惊讶的是,绝对没有任何东西,甚至没有特定于编译器的扩展可以模仿(即使以有限的方式)相同的功能。
我期望 C++ 委员会只考虑已经在现场证明过的功能,通常是通过编译器或目标特定扩展。批准 C++20 的此功能表明该功能应该可以在某个地方访问。但到目前为止,我一直无法找到它。
目前有没有办法尝试 C++ 合约编程?甚至使用一组特定于编译器的扩展?
你可能想尝试this https://github.com/arcosuc3m/clang-contracts在 Clang 中实验性地实施合约。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)