如何在 cpp20 实验中导入 C 断言

How to import C assert in cpp20 experimental

本文关键字:导入 断言 实验 cpp20      更新时间:2023-10-16

我想在Visual Studio 2019中使用带有C++20的Cassert(使用std:c++latest编译(,但我找不到要导入的正确模块。是否已经支持,如果是,我应该导入哪个模块?

import std.core;
constexpr auto f()
{
return "Hello world!";
}
int main()
{
static_assert(f() == "Hello world!"); // Compile time assert works.
//assert(f() == "Hello world!"); // How to import runtime assert()?
//[[assert: f() == "Hello world!"]] // Contracts were removed from cpp20.
std::cout << f();
}

输出:你好世界!

模块不包含宏。导入旧模块标头将引入宏,但import std.core;或其他永远不会引入宏。

模块可以与头文件并行使用。C++源文件可以导入模块,也可以导入 #include 头文件。我建议你可以尝试添加#include <assert.h>