8#ifndef INCLUDED_BSLMF_ASSERT
9#define INCLUDED_BSLMF_ASSERT
126#include <bslscm_version.h>
135#ifdef BSLS_COMPILERFEATURES_SUPPORT_STATIC_ASSERT
136#define BSLMF_ASSERT(BSLMF_CONSTANT_EXPRESSION) \
137 static_assert((BSLMF_CONSTANT_EXPRESSION), #BSLMF_CONSTANT_EXPRESSION)
146#define BSLMF_ASSERT_CAT(X, Y) BSLMF_ASSERT_CAT_IMP1(X, Y)
147#define BSLMF_ASSERT_CAT_IMP1(X, Y) BSLMF_ASSERT_CAT_IMP2(X, Y)
148#define BSLMF_ASSERT_CAT_IMP2(X, Y) X##Y
154#if defined(BSLS_PLATFORM_CMP_SUN) && BSLS_PLATFORM_CMP_VERSION < 0x5130
160struct Assert_TrueType {
164struct Assert_FalseType {
168struct Assert_If : Assert_TrueType {
172struct Assert_If<false> : Assert_FalseType {
181template <
bool IS_VALID>
197template <
bool IS_VALID>
209#if defined(BSLS_PLATFORM_CMP_SUN) && BSLS_PLATFORM_CMP_VERSION < 0x5130
219#define BSLMF_ASSERT(expr) \
220 struct BSLMF_ASSERT_CAT(bslmf_Assert_, __LINE__) \
221 : ::BloombergLP::bslmf::Assert_If<!!(int)(expr)> \
223 BSLMF_COMPILE_TIME_ASSERTION_FAILURE * dummy; \
226 enum { BSLMF_ASSERT_CAT(bslmf_Assert_Check_, __LINE__) \
227 = sizeof(BSLMF_ASSERT_CAT(bslmf_Assert_, __LINE__)) } \
231#define BSLMF_ASSERT(expr) \
232BSLA_MAYBE_UNUSED typedef BloombergLP::bslmf::AssertTest< \
233 sizeof(BloombergLP::BSLMF_COMPILE_TIME_ASSERTION_FAILURE<!!(expr)>)> \
234 BSLMF_ASSERT_CAT(bslmf_Assert_, __LINE__)
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlbb_blob.h:579
Definition bslmf_assert.h:182
Definition bslmf_assert.h:198