Quick Links:

bal | bbl | bdl | bsl

Classes | Namespaces | Defines | Typedefs

bsls_assert.h File Reference

Provide build-specific, runtime-configurable assertion macros. More...

Go to the source code of this file.

Classes

class  bsls::AssertViolation
class  bsls::Assert
class  bsls::AssertFailureHandlerGuard

Namespaces

namespace  bsls

Defines

#define BSLS_ASSERT_NO_ASSERTION_MACROS_DEFINED   1
#define BSLS_ASSERT_ASSERT_IMP(X, LVL)
#define BSLS_ASSERT_ASSUME_IMP(X, LVL)   BSLS_ASSERT_DISABLED_IMP(X,LVL)
#define BSLS_ASSERT_DISABLED_IMP(X, LVL)
#define BSLS_ASSERT_SAFE_IS_USED
#define BSLS_ASSERT_SAFE(X)
#define BSLS_ASSERT_IS_ACTIVE
#define BSLS_ASSERT_IS_USED
#define BSLS_ASSERT(X)
#define BSLS_ASSERT_OPT_IS_ACTIVE
#define BSLS_ASSERT_OPT_IS_USED
#define BSLS_ASSERT_OPT(X)
#define BSLS_ASSERT_INVOKE(X)
#define BSLS_ASSERT_INVOKE_NORETURN(X)
#define BSLS_ASSERT_NORETURN_INVOKE_HANDLER
#define BSLS_ASSERT_RECURSIVELY_INCLUDED_TESTDRIVER_GUARD
#define BDE_ASSERT_H(X)   BSLS_ASSERT_SAFE(X)
#define BSL_ASSERT_H(X)   BSLS_ASSERT_SAFE(X)
#define BDE_ASSERT_CPP(X)   BSLS_ASSERT(X)
#define BSL_ASSERT_CPP(X)   BSLS_ASSERT(X)
#define BSLS_ASSERT_ASSERT(X)

Typedefs

typedef bsls::Assert bdes_Assert
typedef
bsls::AssertFailureHandlerGuard 
bdes_AssertFailureHandlerGuard
typedef bsls::Assert bsls_Assert
typedef
bsls::AssertFailureHandlerGuard 
bsls_AssertFailureHandlerGuard

Detailed Description


Define Documentation

#define BSLS_ASSERT_NO_ASSERTION_MACROS_DEFINED   1
#define BSLS_ASSERT_ASSERT_IMP (   X,
  LVL 
)
Value:
do {                                    \
        if (BSLS_PERFORMANCEHINT_PREDICT_UNLIKELY(!(X))) {                    \
            BSLS_PERFORMANCEHINT_UNLIKELY_HINT;                               \
            BloombergLP::bsls::AssertViolation violation(                     \
                                                     #X,                      \
                                                     BSLS_ASSERTIMPUTIL_FILE, \
                                                     BSLS_ASSERTIMPUTIL_LINE, \
                                                     LVL);                    \
            BloombergLP::bsls::Assert::invokeHandler(violation);              \
        }                                                                     \
    } while (false)

The above flavors of assumption are the only available ones that we support, and the only platforms where we currently attempt to use assumption.

#define BSLS_ASSERT_ASSUME_IMP (   X,
  LVL 
)    BSLS_ASSERT_DISABLED_IMP(X,LVL)
#define BSLS_ASSERT_DISABLED_IMP (   X,
  LVL 
)
#define BSLS_ASSERT_SAFE_IS_USED
#define BSLS_ASSERT_SAFE (   X  ) 
Value:
BSLS_ASSERT_ASSERT_IMP(                       \
                                     X,                                       \
                                     BloombergLP::bsls::Assert::k_LEVEL_SAFE)

Referenced by bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::append(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::assign(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::back(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::basic_string(), bslstl_string_fill(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::compare(), bsl::String_Imp< CHAR_TYPE, SIZE_TYPE >::computeNewCapacity(), bslalg::ScalarPrimitives::construct(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::copy(), bslalg::ScalarPrimitives::copyConstruct(), bslstl::StringRefData< CHAR_TYPE >::cStringLength(), bslalg::ScalarPrimitives::defaultConstruct(), bslma::ConstructionUtil::destructiveMove(), bslalg::ScalarPrimitives::destructiveMove(), bsl::vector< ThreadUtil::Handle >::emplace(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::ends_with(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::erase(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::find(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::find_first_not_of(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::find_first_of(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::find_last_not_of(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::find_last_of(), bslstl::HashTable< KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR >::findRange(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::front(), bsl::vector< ThreadUtil::Handle >::insert(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::insert(), bslalg::ScalarPrimitives::moveConstruct(), bsls::NameOf< TYPE >::NameOf(), bsl::operator!=(), bsl::hash< basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > >::operator()(), bdlat_SymbolicConverter_Imp_resolveDynamicLhsProxy< RHS_TYPE, RHS_CATEGORY >::operator()(), bdlat_SymbolicConverter_Imp_resolveDynamicRhsProxy< LHS_TYPE, LHS_CATEGORY >::operator()(), balxml::TypesPrintUtilImp_PrintText::operator()(), balxml::TypesPrintUtilImp_PrintListElementDefault::operator()(), balxml::TypesPrintUtilImp_PrintList::operator()(), balxml::TypesPrintUtilImp_PrintHex::operator()(), balxml::TypesPrintUtilImp_PrintDefault::operator()(), balxml::TypesPrintUtilImp_PrintDecimal::operator()(), balxml::TypesPrintUtilImp_PrintBase64::operator()(), balxml::TypesParserUtilImp_ParseText::operator()(), balxml::TypesParserUtilImp_ParseListElementDefault::operator()(), balxml::TypesParserUtilImp_ParseList::operator()(), balxml::TypesParserUtilImp_ParseHex::operator()(), balxml::TypesParserUtilImp_ParseDefault::operator()(), balxml::TypesParserUtilImp_ParseDecimal::operator()(), balxml::TypesParserUtilImp_ParseBase64::operator()(), balxml::Encoder_SequenceFirstPass_addAttributeImpProxy::operator()(), balxml::Encoder_EncodeValue_executeImpProxy::operator()(), balxml::Encoder_EncodeObject_executeImpProxy::operator()(), balxml::Decoder_ParseNillableObject_executeImpProxy::operator()(), balxml::Decoder_ParseObject_executeImpProxy::operator()(), balxml::Decoder_ParseAttribute_executeImpProxy::operator()(), balxml::Decoder_decodeImpProxy::operator()(), bsl::operator+(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::operator+=(), bsl::operator<(), bsl::operator<=(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::operator=(), bsl::operator==(), bsl::operator>(), bsl::operator>=(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::operator[](), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::pop_back(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::replace(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::rfind(), bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::starts_with(), bslstl::StringRefData< CHAR_TYPE >::StringRefData(), bdlb::Variant_CopyAssignVisitor::Variant_CopyAssignVisitor(), bdlb::Variant_CopyConstructVisitor::Variant_CopyConstructVisitor(), bdlb::Variant_EqualityTestVisitor::Variant_EqualityTestVisitor(), bdlb::Variant_MoveAssignVisitor::Variant_MoveAssignVisitor(), bdlb::Variant_MoveConstructVisitor::Variant_MoveConstructVisitor(), bdlb::Variant_PrintVisitor::Variant_PrintVisitor(), bdlb::Variant_SwapVisitor::Variant_SwapVisitor(), and bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::~basic_string().

#define BSLS_ASSERT_IS_ACTIVE
#define BSLS_ASSERT_IS_USED
#define BSLS_ASSERT (   X  ) 
#define BSLS_ASSERT_OPT_IS_ACTIVE
#define BSLS_ASSERT_OPT_IS_USED
#define BSLS_ASSERT_OPT (   X  ) 
Value:
BSLS_ASSERT_ASSERT_IMP(                        \
                                      X,                                      \
                                      BloombergLP::bsls::Assert::k_LEVEL_OPT)

Referenced by bsl::basic_stringbuf< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::seekoff().

#define BSLS_ASSERT_INVOKE (   X  ) 
Value:
do {                                            \
        BloombergLP::bsls::AssertViolation violation(                         \
                                  X,                                          \
                                  BSLS_ASSERTIMPUTIL_FILE,                    \
                                  BSLS_ASSERTIMPUTIL_LINE,                    \
                                  BloombergLP::bsls::Assert::k_LEVEL_INVOKE); \
        BloombergLP::bsls::Assert::invokeHandler(violation);                  \
    } while (false)
#define BSLS_ASSERT_INVOKE_NORETURN (   X  ) 
Value:
do {                                   \
        BloombergLP::bsls::AssertViolation violation(                         \
                                  X,                                          \
                                  BSLS_ASSERTIMPUTIL_FILE,                    \
                                  BSLS_ASSERTIMPUTIL_LINE,                    \
                                  BloombergLP::bsls::Assert::k_LEVEL_INVOKE); \
        BloombergLP::bsls::Assert::invokeHandlerNoReturn(violation);          \
    } while (false)
#define BSLS_ASSERT_NORETURN_INVOKE_HANDLER
#define BSLS_ASSERT_RECURSIVELY_INCLUDED_TESTDRIVER_GUARD