8#ifndef INCLUDED_BSLMF_INTEGRALCONSTANT
9#define INCLUDED_BSLMF_INTEGRALCONSTANT
188#include <bslscm_version.h>
195#ifdef BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER
196# include <type_traits>
199#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
203#define BSL_DEPRECATE_TRUE_FALSE_TYPE_VALUE \
204 BSLS_DEPRECATE_FEATURE("bsl", "legacy_true_and_false_VALUE", \
205 "use standard, lower-case, 'value' instead")
213#ifdef BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER
214template <
class t_TYPE, t_TYPE t_VAL>
215struct integral_constant : ::std::integral_constant<t_TYPE, t_VAL> {
220struct integral_constant<bool, false> : ::std::false_type
226 static const bool VALUE =
false;
230struct integral_constant<bool, true> : ::std::true_type
236 static const bool VALUE =
true;
243template <
class t_TYPE, t_TYPE t_VAL>
289 static const
bool VALUE = t_VAL;
309#ifdef BSLS_COMPILERFEATURES_SUPPORT_ALIAS_TEMPLATES
310template <
bool t_VALUE>
313# if !defined(BSLS_LIBRARYFEATURES_HAS_CPP17_BOOL_CONSTANT)
314# define BSLS_LIBRARYFEATURES_HAS_CPP17_BOOL_CONSTANT 1
326#if !defined(BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER)
328template <
class t_TYPE, t_TYPE t_VAL>
337template <
class t_TYPE, t_TYPE t_VAL>
354#undef BSL_DEPRECATE_TRUE_FALSE_TYPE_VALUE
static const t_TYPE value
Definition bslmf_integralconstant.h:258
#define BSL_DEPRECATE_TRUE_FALSE_TYPE_VALUE
Definition bslmf_integralconstant.h:203
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_CONSTEXPR
Definition bsls_keyword.h:588
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:632
Definition bdlb_printmethods.h:283
integral_constant< bool, false > false_type
Definition bslmf_integralconstant.h:297
integral_constant< bool, true > true_type
Definition bslmf_integralconstant.h:303
bool value_type
Definition bslmf_integralconstant.h:276
integral_constant type
Definition bslmf_integralconstant.h:277
integral_constant(const integral_constant &)=default
integral_constant operator=(const integral_constant &)=default
integral_constant()=default
~integral_constant()=default
Definition bslmf_integralconstant.h:244
integral_constant()=default
~integral_constant()=default
integral_constant operator=(const integral_constant &)=default
integral_constant type
Definition bslmf_integralconstant.h:255
integral_constant(const integral_constant &)=default
t_TYPE value_type
Definition bslmf_integralconstant.h:254