<commit_before>// bsla_deprecated.h                                                  -*-C++-*-
#ifndef INCLUDED_BSLA_DEPRECATED
#define INCLUDED_BSLA_DEPRECATED

#include <bsls_ident.h>
BSLS_IDENT("$Id: $")

//@PURPOSE: Provide compiler-hint macros to indicate deprecated entities.
//
//@MACROS:
//  BSLA_DEPRECATED: warn if annotated (deprecated) entity is used
//  BSLA_DEPRECATED_MESSAGE: warn with message if annotated entity is used
//  BSLA_DEPRECATED_IS_ACTIVE: 1 if both macros are active, 0 if both inactive
//
//@SEE_ALSO: bsla_annotations
//
//@AUTHOR: <NAME> (apaprock), <NAME> (bchapman2)
//
//@DESCRIPTION: This component provides preprocessor macros that hint to the
// compiler that a function, variable, type, 'typedef', 'struct' member, 'enum'
// type, or template specialization is deprecated.  This is useful, for
// example, when identifying functions that are expected to be removed in a
// future version of a library.
//
///Macro Reference
///---------------
//: 'BSLA_DEPRECATED'
//:     This annotation will, when used, cause a compile-time warning if the
//:     so-annotated function, variable, type, 'typedef', 'struct' member,
//:     'enum' type, or template specialization is used anywhere within the
//:     source file.  The warning includes the location of the declaration of
//:     the deprecated entity to enable users to find further information about
//:     the deprecation, or what they should use instead.
//
//: 'BSLA_DEPRECATED_MESSAGE(QUOTED_MESSAGE)'
//:     This annotation will, when used, cause a compile-time warning if the
//:     so-annotated function, variable, type, 'typedef', 'struct' member,
//:     'enum' type, or template specialization is used anywhere within the
//:     source file.  The compiler warning will contain the contents of the
//:     specified 'QUOTED_MESSAGE', which must be a double-quoted string.  The
//:     warning includes the location of the declaration of the deprecated
//:     entity to enable users to find further information about the
//:     deprecation, and what they should use instead.  Note that on some
//:     compilers 'message' is ignored.
//
//: 'BSLA_DEPRECATED_IS_ACTIVE'
//:     The macro 'BSLA_DEPRECATED_IS_ACTIVE' is defined to 0 if
//:     'BSLA_DEPRECATED' and 'BSLA_DEPRECATED_MESSAGE' both expand to nothing
//:     and 1 if they are both enabled and have the desired effect.  Either
//:     both of them work or neither works.
//
///Usage<commit_msg>bsla_deprecated: Clay's feedback<commit_after>// bsla_deprecated.h                                                  -*-C++-*-
#ifndef INCLUDED_BSLA_DEPRECATED
#define INCLUDED_BSLA_DEPRECATED

#include <bsls_ident.h>
BSLS_IDENT("$Id: $")

//@PURPOSE: Provide compiler-hint macros to indicate deprecated entities.
//
//@MACROS:
//  BSLA_DEPRECATED: warn if annotated (deprecated) entity is used
//  BSLA_DEPRECATED_MESSAGE: warn with message if annotated entity is used
//  BSLA_DEPRECATED_IS_ACTIVE: 1 if both macros are active, 0 if both inactive
//
//@SEE_ALSO: bsla_annotations
//
//@AUTHOR: <NAME> (apaprock), <NAME> (bchapman2)
//
//@DESCRIPTION: This component provides preprocessor macros that hint to the
// compiler that a function, variable, type, 'typedef', 'struct' member, 'enum'
// type, or template specialization is deprecated.  This is useful, for
// example, when identifying functions that are expected to be removed in a
// future version of a library.
//
///Macro Reference
///---------------
//: 'BSLA_DEPRECATED'
//:     This annotation will, when used, cause a compile-time warning if the
//:     so-annotated function, variable, type, 'typedef', 'struct' member,
//:     'enum' type, or template specialization is used anywhere within the
//:     source file.  The warning includes the location of the declaration of
//:     the deprecated entity to enable users to find further information about
//:     the deprecation, or what they should use instead.
//
//: 'BSLA_DEPRECATED_MESSAGE(QUOTED_MESSAGE)'
//:     This annotation will, when used, cause a compile-time warning if the
//:     so-annotated function, variable, type, 'typedef', 'struct' member,
//:     'enum' type, or template specialization is used anywhere within the
//:     source file.  The compiler warning will contain the contents of the
//:     specified 'QUOTED_MESSAGE', which must be a double-quoted string.  The
//:     warning includes the location of the declaration of the deprecated
//:     entity to enable users to find further information about the
//:     deprecation, and what they should use instead.  Note that on some
//:     compilers 'QUOTED_MESSAGE' is ignored.
//
//: 'BSLA_DEPRECATED_IS_ACTIVE'
//:     The macro 'BSLA_DEPRECATED_IS_ACTIVE' is defined to 0 if
//:     'BSLA_DEPRECATED' and 'BSLA_DEPRECATED_MESSAGE' both expand to nothing
//:     and 1 if they are both enabled and have the desired effect.  Either
//:     both of them work or neither works.
//
///Usage
{'fraction_non_alphanumeric': 0.10630557801131771, 'fraction_numerical': 0.002021018593371059, 'mean_word_length': 3.1834319526627217, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7568166', 'n_tokens_mistral': 1495, 'n_tokens_neox': 1424, 'n_words': 567}