美文网首页
Assertions

Assertions

作者: 右腕 | 来源:发表于2019-02-18 17:24 被阅读0次

    断言失败时,后面的宏都会暂停执行。

    当DO_CHECK = 1时执行

    check(expression);

    eg:check(Mesh != nullptr);

    checkf(expression, ...);

    当断言表达式为true并打印额外信息

    eg:checkf(WasDestroyed, TEXT( "Failed to destroy Actor %s (%s)"), *Actor->GetClass()->GetName(), *Actor->GetActorLabel());


    verify(expression);

    当DO_CHECK = 1时和check一样;

    verifyf(表达式,......);


    checkCode(expression);

    DO_CHECK被禁用时,在执行一次的do / while循环内执行


    checkNoEntry()

    用于标记永远不应执行的代码路径

    switch (MyEnum)

     case MyEnumValue: 

             break; 

     default: 

             checkNoEntry();

             break;

    }

    checkNoReentry();

    checkNoRecursion();

    保证函数只被调用1次


    unimplemented();

    标记应该被覆盖或不在特定类上调用的函数

    第二类断言宏仅在启用DO_GUARD_SLOW时执行

    checkSlow(),checkfSlow()和verifySlow()

    第三类断言宏不会停止执行,而是用于创建一个callstack报告以帮助跟踪问题。使用DO_CHECK定义启用这些宏。

    ensure(expression);

    如果表达式失败,则生成一个指向该点的callstack。

    ensureMsg(expression, message);

    ensureMsgf(expression, message, ...);

    相关文章

      网友评论

          本文标题:Assertions

          本文链接:https://www.haomeiwen.com/subject/yomgeqtx.html