【C++】自定义断言信息

  • 断言失败自定义信息

    目前的标准 assert 宏只接受一个参数,失败时只会输出该条件对应的源代码文本,无法附加自定义信息。

    即将到来的 C++26 标准对 assert 进行了增强,使其支持可变参数。

    在C++26之前,利用 && 或逗号运算符,是最简洁、最常用的技巧。

    #include <cassert>
    
    int main() 
    {
        int divisor = 0;
        // 使用 && 运算符
        assert(divisor != 0 && "Divisor cannot be zero!"); 
        
        int value = -1;
        // 使用逗号运算符(注意括号)
        assert(("Value should be positive", value > 0)); 
        return 0;
    }
    
posted @ 2026-02-23 18:22  仰望星河Leon  阅读(5)  评论(0)    收藏  举报