8#ifndef INCLUDED_BSLMF_METAINT
9#define INCLUDED_BSLMF_METAINT
141#include <bslscm_version.h>
161template <
int t_INT_VALUE>
165 "use 'integral_constant' instead")
166MetaInt : public
bsl::integral_constant<
int, t_INT_VALUE> {
168#if defined(BSLS_COMPILERFEATURES_SUPPORT_STATIC_ASSERT)
169 static_assert(t_INT_VALUE >= 0,
"t_INT_VALUE must be non-negative");
173 typedef MetaInt<t_INT_VALUE> Type;
175#ifdef BSLS_PLATFORM_CMP_IBM
177#pragma report(disable, "1540-0724")
182#ifdef BSLS_PLATFORM_CMP_IBM
186 enum { VALUE = t_INT_VALUE };
196 MetaInt(
const MetaInt&) =
default;
197 MetaInt& operator=(
const MetaInt&) =
default;
198 ~MetaInt() =
default;
220 "use 'integral_constant' instead")
221MetaInt<0> : public
bsl::false_type {
224 typedef MetaInt<0> Type;
237 MetaInt(
const MetaInt&) =
default;
238 MetaInt& operator=(
const MetaInt&) =
default;
239 ~MetaInt() =
default;
257 operator bool()
const;
266 "use 'integral_constant' instead")
267MetaInt<1> : public
bsl::true_type {
270 typedef MetaInt<1> Type;
283 MetaInt(
const MetaInt&) =
default;
284 MetaInt& operator=(
const MetaInt&) =
default;
285 ~MetaInt() =
default;
303 operator bool()
const;
309#define BSLMF_METAINT_TO_INT(expr) BSLMF_TAG_TO_INT((expr).tag())
315#define BSLMF_METAINT_TO_BOOL(expr) BSLMF_TAG_TO_BOOL((expr).tag())
317#ifndef BDE_OPENSOURCE_PUBLICATION
326#define bslmf_MetaInt bslmf::MetaInt
334template <
int t_INT_VALUE>
336MetaInt<t_INT_VALUE>::MetaInt()
340template <
int t_INT_VALUE>
368MetaInt<0>::operator bool()
const
374MetaInt<1>::operator bool()
const
#define BSLS_DEPRECATE_FEATURE(UOR, FEATURE, MESSAGE)
Definition bsls_deprecatefeature.h:387
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlat_valuetypefunctions.h:939
Definition bdlbb_blob.h:579
Definition bslmf_integralconstant.h:261
Definition bslmf_tag.h:166