#ifndef BOOST_PREPROCESSOR_DEC_HPP
#define BOOST_PREPROCESSOR_DEC_HPP

//  Copyright (C) 2001
//  Housemarque, Inc.
//  http://www.housemarque.com
//  
//  Permission to copy, use, modify, sell and distribute this software is
//  granted provided this copyright notice appears in all copies. This
//  software is provided "as is" without express or implied warranty, and
//  with no claim as to its suitability for any purpose.

//  See http://www.boost.org for most recent version.

/*! \file

<a href="../../../../boost/preprocessor/dec.hpp">Click here to see the header.</a>
*/

//! Decrements X expanding to a single token.
/*!
BOOST_PREPROCESSOR_DEC() uses saturation arithmetic. Decrementing 0 yeilds a 0.

Only decimal integer literals in the range [0,BOOST_PREPROCESSOR_LIMIT_MAG] are
supported.
*/
#define BOOST_PREPROCESSOR_DEC(X) BOOST_PREPROCESSOR_DEC_DELAY(X)

#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define BOOST_PREPROCESSOR_DEC_DELAY(X) BOOST_PREPROCESSOR_DEC##X
#define BOOST_PREPROCESSOR_DEC0 0
#define BOOST_PREPROCESSOR_DEC1 0
#define BOOST_PREPROCESSOR_DEC2 1
#define BOOST_PREPROCESSOR_DEC3 2
#define BOOST_PREPROCESSOR_DEC4 3
#define BOOST_PREPROCESSOR_DEC5 4
#define BOOST_PREPROCESSOR_DEC6 5
#define BOOST_PREPROCESSOR_DEC7 6
#define BOOST_PREPROCESSOR_DEC8 7
#define BOOST_PREPROCESSOR_DEC9 8
#define BOOST_PREPROCESSOR_DEC10 9
#define BOOST_PREPROCESSOR_DEC11 10
#define BOOST_PREPROCESSOR_DEC12 11
#define BOOST_PREPROCESSOR_DEC13 12
#define BOOST_PREPROCESSOR_DEC14 13
#define BOOST_PREPROCESSOR_DEC15 14
#define BOOST_PREPROCESSOR_DEC16 15
#define BOOST_PREPROCESSOR_DEC17 16
#define BOOST_PREPROCESSOR_DEC18 17
#define BOOST_PREPROCESSOR_DEC19 18
#define BOOST_PREPROCESSOR_DEC20 19
#define BOOST_PREPROCESSOR_DEC21 20
#define BOOST_PREPROCESSOR_DEC22 21
#define BOOST_PREPROCESSOR_DEC23 22
#define BOOST_PREPROCESSOR_DEC24 23
#define BOOST_PREPROCESSOR_DEC25 24
#define BOOST_PREPROCESSOR_DEC26 25
#define BOOST_PREPROCESSOR_DEC27 26
#define BOOST_PREPROCESSOR_DEC28 27
#define BOOST_PREPROCESSOR_DEC29 28
#define BOOST_PREPROCESSOR_DEC30 29
#define BOOST_PREPROCESSOR_DEC31 30
#define BOOST_PREPROCESSOR_DEC32 31
#define BOOST_PREPROCESSOR_DEC33 32
#define BOOST_PREPROCESSOR_DEC34 33
#define BOOST_PREPROCESSOR_DEC35 34
#define BOOST_PREPROCESSOR_DEC36 35
#define BOOST_PREPROCESSOR_DEC37 36
#define BOOST_PREPROCESSOR_DEC38 37
#define BOOST_PREPROCESSOR_DEC39 38
#define BOOST_PREPROCESSOR_DEC40 39
#define BOOST_PREPROCESSOR_DEC41 40
#define BOOST_PREPROCESSOR_DEC42 41
#define BOOST_PREPROCESSOR_DEC43 42
#define BOOST_PREPROCESSOR_DEC44 43
#define BOOST_PREPROCESSOR_DEC45 44
#define BOOST_PREPROCESSOR_DEC46 45
#define BOOST_PREPROCESSOR_DEC47 46
#define BOOST_PREPROCESSOR_DEC48 47
#define BOOST_PREPROCESSOR_DEC49 48
#define BOOST_PREPROCESSOR_DEC50 49
#define BOOST_PREPROCESSOR_DEC51 50
#define BOOST_PREPROCESSOR_DEC52 51
#define BOOST_PREPROCESSOR_DEC53 52
#define BOOST_PREPROCESSOR_DEC54 53
#define BOOST_PREPROCESSOR_DEC55 54
#define BOOST_PREPROCESSOR_DEC56 55
#define BOOST_PREPROCESSOR_DEC57 56
#define BOOST_PREPROCESSOR_DEC58 57
#define BOOST_PREPROCESSOR_DEC59 58
#define BOOST_PREPROCESSOR_DEC60 59
#define BOOST_PREPROCESSOR_DEC61 60
#define BOOST_PREPROCESSOR_DEC62 61
#define BOOST_PREPROCESSOR_DEC63 62
#define BOOST_PREPROCESSOR_DEC64 63
#define BOOST_PREPROCESSOR_DEC65 64
#define BOOST_PREPROCESSOR_DEC66 65
#define BOOST_PREPROCESSOR_DEC67 66
#define BOOST_PREPROCESSOR_DEC68 67
#define BOOST_PREPROCESSOR_DEC69 68
#define BOOST_PREPROCESSOR_DEC70 69
#define BOOST_PREPROCESSOR_DEC71 70
#define BOOST_PREPROCESSOR_DEC72 71
#define BOOST_PREPROCESSOR_DEC73 72
#define BOOST_PREPROCESSOR_DEC74 73
#define BOOST_PREPROCESSOR_DEC75 74
#define BOOST_PREPROCESSOR_DEC76 75
#define BOOST_PREPROCESSOR_DEC77 76
#define BOOST_PREPROCESSOR_DEC78 77
#define BOOST_PREPROCESSOR_DEC79 78
#define BOOST_PREPROCESSOR_DEC80 79
#define BOOST_PREPROCESSOR_DEC81 80
#define BOOST_PREPROCESSOR_DEC82 81
#define BOOST_PREPROCESSOR_DEC83 82
#define BOOST_PREPROCESSOR_DEC84 83
#define BOOST_PREPROCESSOR_DEC85 84
#define BOOST_PREPROCESSOR_DEC86 85
#define BOOST_PREPROCESSOR_DEC87 86
#define BOOST_PREPROCESSOR_DEC88 87
#define BOOST_PREPROCESSOR_DEC89 88
#define BOOST_PREPROCESSOR_DEC90 89
#define BOOST_PREPROCESSOR_DEC91 90
#define BOOST_PREPROCESSOR_DEC92 91
#define BOOST_PREPROCESSOR_DEC93 92
#define BOOST_PREPROCESSOR_DEC94 93
#define BOOST_PREPROCESSOR_DEC95 94
#define BOOST_PREPROCESSOR_DEC96 95
#define BOOST_PREPROCESSOR_DEC97 96
#define BOOST_PREPROCESSOR_DEC98 97
#define BOOST_PREPROCESSOR_DEC99 98
#define BOOST_PREPROCESSOR_DEC100 99
#define BOOST_PREPROCESSOR_DEC101 100
#define BOOST_PREPROCESSOR_DEC102 101
#define BOOST_PREPROCESSOR_DEC103 102
#define BOOST_PREPROCESSOR_DEC104 103
#define BOOST_PREPROCESSOR_DEC105 104
#define BOOST_PREPROCESSOR_DEC106 105
#define BOOST_PREPROCESSOR_DEC107 106
#define BOOST_PREPROCESSOR_DEC108 107
#define BOOST_PREPROCESSOR_DEC109 108
#define BOOST_PREPROCESSOR_DEC110 109
#define BOOST_PREPROCESSOR_DEC111 110
#define BOOST_PREPROCESSOR_DEC112 111
#define BOOST_PREPROCESSOR_DEC113 112
#define BOOST_PREPROCESSOR_DEC114 113
#define BOOST_PREPROCESSOR_DEC115 114
#define BOOST_PREPROCESSOR_DEC116 115
#define BOOST_PREPROCESSOR_DEC117 116
#define BOOST_PREPROCESSOR_DEC118 117
#define BOOST_PREPROCESSOR_DEC119 118
#define BOOST_PREPROCESSOR_DEC120 119
#define BOOST_PREPROCESSOR_DEC121 120
#define BOOST_PREPROCESSOR_DEC122 121
#define BOOST_PREPROCESSOR_DEC123 122
#define BOOST_PREPROCESSOR_DEC124 123
#define BOOST_PREPROCESSOR_DEC125 124
#define BOOST_PREPROCESSOR_DEC126 125
#define BOOST_PREPROCESSOR_DEC127 126
#define BOOST_PREPROCESSOR_DEC128 127
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#endif
