Quick Links:

bal | bbl | bdl | bsl

Defines | Variables

bsls_deprecate.h File Reference

Provide machinery to deprecate interfaces on a per-version basis. More...

Go to the source code of this file.

Defines

#define BSLS_DEPRECATE_COMPILER_SUPPORT   0
#define BSLS_DEPRECATE
#define BSLS_DEPRECATE_CAT(X, Y)   BSLS_DEPRECATE_CAT_A(X, Y)
#define BSLS_DEPRECATE_CAT_A(X, Y)   BSLS_DEPRECATE_CAT_B(X, Y)
#define BSLS_DEPRECATE_CAT_B(X, Y)   X ## Y
#define BSLS_DEPRECATE_ISDEFINED(...)   BSLS_DEPRECATE_ISDEFINED_A(__VA_ARGS__)
#define BSLS_DEPRECATE_ISDEFINED_A(...)   ((__VA_ARGS__ ## 1L) != 0)
#define BSLS_DEPRECATE_ISNONZERO(...)   BSLS_DEPRECATE_ISNONZERO_A(__VA_ARGS__)
#define BSLS_DEPRECATE_ISNONZERO_A(...)   (__VA_ARGS__ + 1 != 1)
#define BSLS_DEPRECATE_MAKE_VER(M, N)   ((M) * 1000 + (N))
#define BSLS_DEPRECATE_ISPASTTHRESHOLD(U, M, N)
#define BSLS_DEPRECATE_ISPASTTHRESHOLD_A(U)   BSLS_DEPRECATE_CAT(U, _VERSION_DEPRECATION_THRESHOLD)
#define BSLS_DEPRECATE_ISRETAINED(U, M, N)   BSLS_DEPRECATE_ISRETAINED_A(U, M, N)
#define BSLS_DEPRECATE_ISRETAINED_A(U, M, N)   BSLS_DEPRECATE_ISRETAINED_B(U, M, N)
#define BSLS_DEPRECATE_ISRETAINED_B(U, M, N)
#define BSLS_DEPRECATE_IS_ACTIVE(U, M, N)

Variables

*< ul > *< li > *An
deprecation threshold has been
defined for UOR< code > U
</code > and *that threshold
is greater than or equal to
version< code > M 
N</code >
*< ul > *< li > *An
deprecation threshold has been
defined for UOR< code > U
</code > and *that threshold
is greater than or equal to
version< code > M or *</li > *
< li > *An deprecation
threshold has< em > not</em >
been defined for UOR< code > 
U</code >
*< ul > *< li > *An
deprecation threshold has been
defined for UOR< code > U
</code > and *that threshold
is greater than or equal to
version< code > M or *</li > *
< li > *An deprecation
threshold has< em > not</em >
been defined for UOR< code >
*the versioning package for
UOR< code > U</code > defines
< code >< U> _VERSION_MAJOR
</code > and *< code >< U> 
_VERSION_MINOR</code >
*< ul > *< li > *< code >
BB_SILENCE_DEPRECATIONS_< U>
_< M> _< N></code > has not
been defined in this
*translation 
unit
*< ul > *< li > *< code >
BB_SILENCE_DEPRECATIONS_< U>
_< M> _< N></code > has not
been defined in this
*translation and *</li > *< li > *
< code >
BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_
< U></code > has not been
defined *in this translation
and *</li > *< li > *One of
the following holds 
true

Detailed Description


Define Documentation

#define BSLS_DEPRECATE_COMPILER_SUPPORT   0

< Check the Sun compiler macros directly, rather than rely on the BDE platform-detection macros in bsls_platform, to allow deprecation of features in that component in the future. This feature was last tested with CC 12.5.

#define BSLS_DEPRECATE
#define BSLS_DEPRECATE_CAT (   X,
  Y 
)    BSLS_DEPRECATE_CAT_A(X, Y)
#define BSLS_DEPRECATE_CAT_A (   X,
  Y 
)    BSLS_DEPRECATE_CAT_B(X, Y)
#define BSLS_DEPRECATE_CAT_B (   X,
  Y 
)    X ## Y
#define BSLS_DEPRECATE_ISDEFINED (   ...  )     BSLS_DEPRECATE_ISDEFINED_A(__VA_ARGS__)
#define BSLS_DEPRECATE_ISDEFINED_A (   ...  )     ((__VA_ARGS__ ## 1L) != 0)
#define BSLS_DEPRECATE_ISNONZERO (   ...  )     BSLS_DEPRECATE_ISNONZERO_A(__VA_ARGS__)
#define BSLS_DEPRECATE_ISNONZERO_A (   ...  )     (__VA_ARGS__ + 1 != 1)
#define BSLS_DEPRECATE_MAKE_VER (   M,
  N 
)    ((M) * 1000 + (N))
#define BSLS_DEPRECATE_ISPASTTHRESHOLD (   U,
  M,
  N 
)
#define BSLS_DEPRECATE_ISPASTTHRESHOLD_A (   U  )     BSLS_DEPRECATE_CAT(U, _VERSION_DEPRECATION_THRESHOLD)
#define BSLS_DEPRECATE_ISRETAINED (   U,
  M,
  N 
)    BSLS_DEPRECATE_ISRETAINED_A(U, M, N)
#define BSLS_DEPRECATE_ISRETAINED_A (   U,
  M,
  N 
)    BSLS_DEPRECATE_ISRETAINED_B(U, M, N)
#define BSLS_DEPRECATE_ISRETAINED_B (   U,
  M,
  N 
)
Value:
(BSLS_DEPRECATE_ISDEFINED(BB_SILENCE_DEPRECATIONS_## U ##_## M ##_## N)   \
  || BSLS_DEPRECATE_ISDEFINED(BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_ ## U))
#define BSLS_DEPRECATE_IS_ACTIVE (   U,
  M,
  N 
)
Value:
(  !BSLS_DEPRECATE_ISRETAINED(U, M, N)                                    \
     && (  BSLS_DEPRECATE_ISDEFINED(BB_WARN_ALL_DEPRECATIONS_FOR_TESTING_ONLY)\
        || BSLS_DEPRECATE_ISPASTTHRESHOLD(U, M, N)))

Variable Documentation

*< ul > *< li > *< code > BB_SILENCE_DEPRECATIONS_< U> _< M> _< N></code > has not been defined in this *translation and *</li > *< li > *< code > BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_< U></code > has not been defined *in this translation and *</li > *< li > *One of the following holds or *</li > *< li > *An deprecation threshold has been defined for UOR< code > U</code > and *that threshold is greater than or equal to version< code > M N</code > [explicit]
*< ul > *< li > *< code > BB_SILENCE_DEPRECATIONS_< U> _< M> _< N></code > has not been defined in this *translation and *</li > *< li > *< code > BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_< U></code > has not been defined *in this translation and *</li > *< li > *One of the following holds or *</li > *< li > *An deprecation threshold has been defined for UOR< code > U</code > and *that threshold is greater than or equal to version< code > M or *</li > *< li > *An deprecation threshold has< em > not</em > been defined for UOR *< code > U</code > [explicit]
*< ul > *< li > *< code > BB_SILENCE_DEPRECATIONS_< U> _< M> _< N></code > has not been defined in this *translation and *</li > *< li > *< code > BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_< U></code > has not been defined *in this translation and *</li > *< li > *One of the following holds or *</li > *< li > *An deprecation threshold has been defined for UOR< code > U</code > and *that threshold is greater than or equal to version< code > M or *</li > *< li > *An deprecation threshold has< em > not</em > been defined for UOR *< code > the versioning package for UOR< code > U</code > defines< code >< U> _VERSION_MAJOR</code > *and< code >< U> _VERSION_MINOR</code > [explicit]
*< ul > *< li > *< code > BB_SILENCE_DEPRECATIONS_< U> _< M> _< N></code > has not been defined in this *translation and *</li > *< li > *< code > BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_< U></code > has not been defined *in this translation unit
*<ul> *<li> *<code> BB_SILENCE_DEPRECATIONS_<U> _<M> _<N></code> has not been defined in this* translation and*</li> *<li> *<code> BB_SILENCE_DEPRECATIONS_FOR_BUILDING_UOR_<U></code> has not been defined* in this translation and*</li> *<li> * One of the following holds true