Quick Links:

bal | bbl | bdl | bsl

Classes | Namespaces | Defines

bsls_review.h File Reference

Provide assertion macros to safely identify contract violations. More...

Go to the source code of this file.

Classes

class  bsls::ReviewViolation
class  bsls::Review
class  bsls::ReviewFailureHandlerGuard

Namespaces

namespace  bsls

Defines

#define BSLS_REVIEW_NO_REVIEW_MACROS_DEFINED   1
#define BSLS_REVIEW_REVIEW_COUNT_IMP
#define BSLS_REVIEW_REVIEW_IMP(X, LVL)
#define BSLS_REVIEW_DISABLED_IMP(X, LVL)
#define BSLS_REVIEW_INVOKE(X)
#define BSLS_REVIEW_SAFE(X)
#define BSLS_REVIEW_IS_ACTIVE
#define BSLS_REVIEW_IS_USED
#define BSLS_REVIEW(X)
#define BSLS_REVIEW_OPT_IS_ACTIVE
#define BSLS_REVIEW_OPT_IS_USED
#define BSLS_REVIEW_OPT(X)
#define BSLS_REVIEW_RECURSIVELY_INCLUDED_TESTDRIVER_GUARD

Detailed Description


Define Documentation

#define BSLS_REVIEW_NO_REVIEW_MACROS_DEFINED   1

< In order to replicate the control logic of BSLS_ASSERT, if there has been no explicit review level set we check to see if there has been an explicit assert level set. If so, we act as though the review level has been explicitly set to the same thing (instead of just basing the review level off of only the build mode).

< Only here, with no explicit review level OR assertion level, does this macro finally get set to true, which will trigger buildtarget-based logic for macro configuration

#define BSLS_REVIEW_REVIEW_COUNT_IMP
Value:
static BloombergLP::bsls::Review::Count count = {0};                  \
        int lastCount = BloombergLP::bsls::Review::updateCount(&count);
#define BSLS_REVIEW_REVIEW_IMP (   X,
  LVL 
)
Value:
do {                                    \
        if (BSLS_PERFORMANCEHINT_PREDICT_UNLIKELY(!(X))) {                    \
            BSLS_PERFORMANCEHINT_UNLIKELY_HINT;                               \
            BSLS_REVIEW_REVIEW_COUNT_IMP;                                     \
            BloombergLP::bsls::ReviewViolation violation(                     \
                                                     #X,                      \
                                                     BSLS_ASSERTIMPUTIL_FILE, \
                                                     BSLS_ASSERTIMPUTIL_LINE, \
                                                     LVL,                     \
                                                     lastCount);              \
            BloombergLP::bsls::Review::invokeHandler(violation);              \
        }                                                                     \
    } while (false)
#define BSLS_REVIEW_DISABLED_IMP (   X,
  LVL 
)
#define BSLS_REVIEW_INVOKE (   X  ) 
Value:
do {                                            \
        BSLS_REVIEW_REVIEW_COUNT_IMP;                                         \
        BloombergLP::bsls::ReviewViolation violation(                         \
                                  X,                                          \
                                  BSLS_ASSERTIMPUTIL_FILE,                    \
                                  BSLS_ASSERTIMPUTIL_LINE,                    \
                                  BloombergLP::bsls::Review::k_LEVEL_INVOKE,  \
                                  lastCount);                                 \
        BloombergLP::bsls::Review::invokeHandler(violation);                  \
    } while (false)
#define BSLS_REVIEW_SAFE (   X  ) 
Value:
BSLS_REVIEW_DISABLED_IMP(                     \
                                     X,                                       \
                                     BloombergLP::bsls::Review::k_LEVEL_SAFE)
#define BSLS_REVIEW_IS_ACTIVE
#define BSLS_REVIEW_IS_USED
#define BSLS_REVIEW (   X  ) 
Value:
BSLS_REVIEW_REVIEW_IMP(                            \
                                   X,                                         \
                                   BloombergLP::bsls::Review::k_LEVEL_REVIEW)
#define BSLS_REVIEW_OPT_IS_ACTIVE
#define BSLS_REVIEW_OPT_IS_USED
#define BSLS_REVIEW_OPT (   X  ) 
Value:
BSLS_REVIEW_REVIEW_IMP(                        \
                                      X,                                      \
                                      BloombergLP::bsls::Review::k_LEVEL_OPT)
#define BSLS_REVIEW_RECURSIVELY_INCLUDED_TESTDRIVER_GUARD