c++11 - 如何删除默认的 "error: static assertion failed:"并在 static_assert 中仅打印我的消息?

标签 c++11 static-assert

每当断言在如下代码中失败时:

static_assert(std::get<0>(tup1) == 0, "Expected value of 0 is not there");

我希望我的程序仅打印诊断预期值 0 不存在,而不是错误:静态断言失败:预期值 0 不存在。如何做到这一点?

最佳答案

这是编译器生成的错误消息,它提供了一些额外的上下文来解释代码无法编译的原因。在不更改编译器源的情况下无法更改它(但不要这样做)。

关于c++11 - 如何删除默认的 "error: static assertion failed:"并在 static_assert 中仅打印我的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41276451/

相关文章:

c++ - static_assert 如何用于检查模板函数的迭代器参数的元素类型?

c++ - static_assert 在宏中,但也扩展为可以用作函数参数的东西

c++ - static_assert 总是在 constexpr 中触发

c++ - 是否可以通过#define 将 g++ 设置为遵循 C++11 ISO (-std=c++11)?

C++ 进程终止,状态为 -1073741819

c++ - 为什么后缀运算符设计为按值返回?

c++ - 如果可能的话静态断言,否则动态断言?

c++ - 关于 ints 和 static_assert 的特化

multithreading - C++11 异步段错误

c++ - 如何在 C++11 中调度线程?