Changeset 1500 for trunk/yat


Ignore:
Timestamp:
Sep 15, 2008, 8:47:37 PM (13 years ago)
Author:
Peter
Message:

Added structure to deprecate functions. I chose to use a gcc style,
and it is tested in configure whether the compiler supports it. If not
the deprecation has no effect. Using a deprecated function will cause
a compiler warning. In gcc the warning can be turned off with
'-Wno-deprecated'. Possibly we should turn off the warning by default,
so a user has to turn it on by defining
-DYAT_DISABLE_DEPRECATED...

fixes #367

Location:
trunk/yat
Files:
1 added
4 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/yat/classifier/Target.h

    r1487 r1500  
    2626*/
    2727
     28#include "yat/utility/deprecate.h"
    2829#include "yat/utility/Exception.h"
    2930
     
    161162    /// API. Use operator().
    162163    ///
    163     size_t operator[](size_t sample) const;
     164    size_t operator[](size_t sample) const YAT_DEPRECATE;
    164165
    165166    ///
  • trunk/yat/statistics/utility.h

    r1487 r1500  
    3131#include "yat/classifier/DataLookupWeighted1D.h"
    3232#include "yat/classifier/Target.h"
     33#include "yat/utility/deprecate.h"
    3334#include "yat/utility/VectorBase.h"
    3435#include "yat/utility/yat_assert.h"
     
    5657  */
    5758  template <class T>
    58   double percentile(T first, T last, double p, bool sorted=false);
     59  double percentile(T first, T last, double p, bool sorted=false) YAT_DEPRECATE;
    5960 
    6061  /**
  • trunk/yat/utility/Makefile.am

    r1494 r1500  
    3737  Alignment.h ColumnStream.h CommandLine.h \
    3838  Container2DIterator.h DataIterator.h DataWeight.h \
    39   Exception.h FileUtil.h Index.h \
     39  deprecate.h Exception.h FileUtil.h Index.h \
    4040  IteratorPolicy.h iterator_traits.h \
    4141  kNNI.h Matrix.h MatrixWeighted.h NNI.h \
     
    4747  WeightIterator.h WeNNI.h yat_assert.h
    4848
    49 versiondir = $(include_utilitydir)
    50 version_DATA = version.h
     49extra_headersdir = $(include_utilitydir)
     50extra_headers_DATA = config_public.h version.h
  • trunk/yat/utility/config_public.h.in

    r1496 r1500  
    1 #ifndef _theplu_yat_utility_version_
    2 #define _theplu_yat_utility_version_
     1#ifndef _theplu_yat_utility_config_public_
     2#define _theplu_yat_utility_config_public_
    33
    44// @configure_input@
     
    2626
    2727///
    28 /// \file utility/version.h
     28/// \file utility/config_public.h
    2929///
    3030
    31 /*
    32   Compile-time version constants
    33 
    34   \see http://apr.apache.org/versioning.html
    35 */
    36 
    37 /**
    38    MAJOR version
    39 
    40    No compatibility is guarenteed between MAJOR versions.
    41 
    42    \since New in yat 0.5
    43  */
    44 #define YAT_MAJOR_VERSION @YAT_MAJOR_VERSION@
    45 
    46 /**
    47    MINOR version
    48 
    49    Minor API changes that do not cause binary compatibility problems.
    50    Reset to 0 when upgrading YAT_MAJOR_VERSION
    51 
    52    \since New in yat 0.5
    53  */
    54 #define YAT_MINOR_VERSION @YAT_MINOR_VERSION@
    55 
    56 /**
    57    PATCH version
    58 
    59    The Patch level never includes API changes, simply bug fixes.
    60    Reset to 0 when upgrading YAT_MINOR_VERSION
    61 
    62    \since New in yat 0.5
    63  */
    64 #define YAT_PATCH_VERSION @YAT_PATCH_VERSION@
    65 
    66 /**
    67    VERSION
    68 
    69    The version of yat in string format
    70 
    71    \since New in yat 0.5
    72  */
    73 #define YAT_VERSION "@VERSION@"
    74 
    75 /**
    76    DEV_BUILD
    77 
    78    Is set to false in releases
    79 
    80    \since New in yat 0.5
    81  */
    82 #define YAT_DEV_BUILD @YAT_DEV_BUILD@
    83 
    84 /**
    85    Check at compile time if the version of yat is at least a certain
    86    level.
    87    @param major The major version component of the version checked
    88    for (e.g., the "0" of "0.5.1").
    89    @param minor The minor version component of the version checked
    90    for (e.g., the "5" of "0.5.1").
    91    @param patch The patch level component of the version checked
    92    for (e.g., the "1" of "0.5.1").
    93 
    94    \since New in yat 0.5
    95  */
    96 #define YAT_VERSION_AT_LEAST(major,minor,patch)                    \
    97 (((major) < YAT_MAJOR_VERSION) ||                                    \
    98  ((major) == YAT_MAJOR_VERSION && (minor) < YAT_MINOR_VERSION) || \
    99  ((major) == YAT_MAJOR_VERSION && (minor) == YAT_MINOR_VERSION &&\
    100   (patch) <= YAT_PATCH_VERSION))
    101 
    102 #include <string>
    103 
    104 namespace theplu {
    105 namespace yat {
    106 namespace utility {
    107 
    108   /**
    109      \return major version number of compiled yat library
    110 
    111    \since New in yat 0.5
    112    */
    113   unsigned int major_version(void);
    114 
    115   /**
    116      \return minor version number of compiled yat library
    117 
    118      \since New in yat 0.5
    119    */
    120   unsigned int minor_version(void);
    121 
    122   /**
    123      \return patch version number of compiled yat library
    124 
    125      \since New in yat 0.5
    126    */
    127   unsigned int patch_version(void);
    128 
    129   /**
    130      \return version number of compiled yat library
    131 
    132      \since New in yat 0.5
    133    */
    134   std::string version(void);
    135 
    136 }}} // of namespace utility, yat, and theplu
     31/// Define if compiler supports deprecated attribute, as in g++ 4.0
     32#undef YAT_HAVE_GCC_DEPRECATED
    13733
    13834#endif
  • trunk/yat/utility/utility.h

    r1487 r1500  
    3131/// @brief Some useful functions are placed here
    3232///
     33
     34#include "deprecate.h"
    3335
    3436#include <limits>
     
    6769  /// API. Use is<double>(const std::string&)
    6870  ///
    69   bool is_double(const std::string&);
     71  bool is_double(const std::string&) YAT_DEPRECATE;
    7072
    7173  /**
     
    8284  /// API. Use is<float>(const std::string&)
    8385  ///
    84   bool is_float(const std::string&);
     86  bool is_float(const std::string&) YAT_DEPRECATE;
    8587
    8688  ///
     
    9092  /// API. Use is<int>(const std::string&)
    9193  ///
    92   bool is_int(const std::string&);
     94  bool is_int(const std::string&) YAT_DEPRECATE;
    9395
    9496  ///
Note: See TracChangeset for help on using the changeset viewer.