gsl::fail_fast 在命名空间中找不到
gsl::fail_fast not found in the namespace
在这个简单的C++契约的使用中,我得到了error: no type named 'fail_fast' in namespace 'gsl'
。 try 块会抛出 fast_fail
异常还是其他异常?
#define GSL_THROW_ON_CONTRACT_VIOLATION
#include <gsl/gsl>
#include <iostream>
int main(void)
{
try {
Expects(false);
}
catch(const gsl::fail_fast &e) {
std::cout << "exception: " << e.what() << '\n';
}
}
GSL_THROW_ON_CONTRACT_VIOLATION
和 gsl::fast_fail
已从 release v3.0.0 开始的 Microsoft GSL 中删除。所有违反合同的行为都会导致对 std::terminate
的调用,除非您在 MSVC 的内核模式下构建它会调用 __fastfail
.
Header file gsl_assert.h only defines gsl::fail_fast exception with GSL_THROW_ON_CONTRACT_VIOLATION defined. So it compiles now? – Serve Laurijssen
有一段时间 gsl::fast_fail
仅在定义 GSL_THROW_ON_CONTRACT_VIOLATION
时定义,但是在 #267 and subsequently fixed in #268 中被识别出来。
在这个简单的C++契约的使用中,我得到了error: no type named 'fail_fast' in namespace 'gsl'
。 try 块会抛出 fast_fail
异常还是其他异常?
#define GSL_THROW_ON_CONTRACT_VIOLATION
#include <gsl/gsl>
#include <iostream>
int main(void)
{
try {
Expects(false);
}
catch(const gsl::fail_fast &e) {
std::cout << "exception: " << e.what() << '\n';
}
}
GSL_THROW_ON_CONTRACT_VIOLATION
和 gsl::fast_fail
已从 release v3.0.0 开始的 Microsoft GSL 中删除。所有违反合同的行为都会导致对 std::terminate
的调用,除非您在 MSVC 的内核模式下构建它会调用 __fastfail
.
Header file gsl_assert.h only defines gsl::fail_fast exception with GSL_THROW_ON_CONTRACT_VIOLATION defined. So it compiles now? – Serve Laurijssen
有一段时间 gsl::fast_fail
仅在定义 GSL_THROW_ON_CONTRACT_VIOLATION
时定义,但是在 #267 and subsequently fixed in #268 中被识别出来。