STK++ 0.9.13
STK_Macros.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------*/
2/* Copyright (C) 2004-2016 Serge Iovleff, Université Lille 1, Inria
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this program; if not, write to the
16 Free Software Foundation, Inc.,
17 59 Temple Place,
18 Suite 330,
19 Boston, MA 02111-1307
20 USA
21
22 Contact : S..._Dot_I..._At_stkpp_Dot_org (see copyright for ...)
23*/
24
25/*
26 * Project: stkpp::Sdk
27 * created on: 23 août 2012
28 * Author: iovleff, S..._Dot_I..._At_stkpp_Dot_org (see copyright for ...)
29 **/
30
38#ifndef STK_MACROS_H
39#define STK_MACROS_H
40
45#define STKERROR_NO_ARG2(Where,Error) \
46 STK::String(_T("Error in "))+STK::String(_T(#Where))+STK::String(_T("(")) \
47+ STK::String(_T(")\nWhat: "))+STK::String(_T(#Error))
48
49#define STKERROR_NO_ARG(Where, Error) \
50 STKERROR_NO_ARG2(Where, Error)
51
56#define STKERROR_1ARG2(Where, Arg, Error) \
57 STK::String(_T("Error in "))+STK::String(_T(#Where))+STK::String(_T("(")) \
58+ STK::typeToString(Arg) \
59+ STK::String(_T(")\nWhat: "))+STK::String(_T(#Error))
60
61#define STKERROR_1ARG(Where, Arg, Error) \
62 STKERROR_1ARG2(Where, Arg, Error)
63
68#define STKERROR_2ARG2(Where, Arg1, Arg2, Error) \
69 STK::String(_T("Error in "))+STK::String(_T(#Where))+STK::String(_T("(")) \
70+ STK::typeToString(Arg1)+STK::String(_T(","))+STK::typeToString(Arg2) \
71+ STK::String(_T(")\nWhat: "))+STK::String(_T(#Error))
72#define STKERROR_2ARG(Where, Arg1, Arg2, Error) \
73 STKERROR_2ARG2(Where, Arg1, Arg2, Error)
74
79#define STKERROR_3ARG2(Where, Arg1, Arg2, Arg3, Error) \
80 STK::String(_T("Error in "))+STK::String(_T(#Where))+STK::String(_T("(")) \
81+ STK::typeToString(Arg1)+STK::String(_T(","))+STK::typeToString(Arg2)+STK::String(_T(","))+STK::typeToString(Arg3)\
82+ STK::String(_T(")\nWhat: "))+STK::String(_T(#Error))
83
84#define STKERROR_3ARG(Where, Arg1, Arg2, Arg3, Error) \
85 STKERROR_3ARG2(Where, Arg1, Arg2, Arg3, Error)
86
91#define STKOUT_OF_RANGE_1ARG2(Where, Arg, Error) \
92 throw STK::out_of_range(STKERROR_1ARG2(Where, Arg, Error))
93#define STKOUT_OF_RANGE_1ARG(Where, Arg, Error) \
94 STKOUT_OF_RANGE_1ARG2(Where, Arg, Error)
95
100#define STKOUT_OF_RANGE_2ARG2(Where, Arg1, Arg2, Error) \
101 throw STK::out_of_range(STKERROR_2ARG2(Where, Arg1, Arg2, Error))
102#define STKOUT_OF_RANGE_2ARG(Where, Arg1, Arg2, Error) \
103 STKOUT_OF_RANGE_2ARG2(Where, Arg1, Arg2, Error)
104
109#define STKOUT_OF_RANGE_3ARG2(Where, Arg1, Arg2, Arg3, Error) \
110 throw STK::out_of_range(STKERROR_3ARG2(Where, Arg1, Arg2, Arg3, Error))
111#define STKOUT_OF_RANGE_3ARG(Where, Arg1, Arg2, Arg3, Error) \
112 STKOUT_OF_RANGE_3ARG2(Where, Arg1, Arg2, Arg3, Error)
113
118#define STKRUNTIME_ERROR_2ARG2(Where, Arg1, Arg2, Error) \
119 throw STK::runtime_error(STKERROR_2ARG2(Where, Arg1, Arg2, Error))
120#define STKRUNTIME_ERROR_2ARG(Where, Arg1, Arg2, Error) \
121 STKRUNTIME_ERROR_2ARG2(Where, Arg1, Arg2, Error)
122
127#define STKRUNTIME_ERROR_1ARG2(Where, Arg, Error) \
128 throw STK::runtime_error(STKERROR_1ARG2(Where, Arg, Error))
129#define STKRUNTIME_ERROR_1ARG(Where, Arg, Error) \
130 STKRUNTIME_ERROR_1ARG2(Where, Arg, Error)
131
136#define STKRUNTIME_ERROR_NO_ARG2(Where, Error) \
137 throw STK::runtime_error(STKERROR_NO_ARG2(Where, Error))
138#define STKRUNTIME_ERROR_NO_ARG(Where, Error) \
139 STKRUNTIME_ERROR_NO_ARG2(Where, Error)
140
145#define STKDOMAIN_ERROR_2ARG2(Where, Arg1, Arg2, Error) \
146 throw STK::domain_error(STKERROR_2ARG2(Where, Arg1, Arg2, Error))
147#define STKDOMAIN_ERROR_2ARG(Where, Arg1, Arg2, Error) \
148 STKDOMAIN_ERROR_2ARG2(Where, Arg1, Arg2, Error)
149
154#define STKDOMAIN_ERROR_3ARG2(Where, Arg1, Arg2, Arg3, Error) \
155 throw STK::domain_error(STKERROR_3ARG2(Where, Arg1, Arg2, Arg3, Error))
156#define STKDOMAIN_ERROR_3ARG(Where, Arg1, Arg2, Arg3, Error) \
157 STKDOMAIN_ERROR_3ARG2(Where, Arg1, Arg2, Arg3, Error)
158
163#define STKDOMAIN_ERROR_1ARG2(Where, Arg, Error) \
164 throw STK::domain_error(STKERROR_1ARG2(Where, Arg, Error))
165#define STKDOMAIN_ERROR_1ARG(Where, Arg, Error) \
166 STKDOMAIN_ERROR_1ARG2(Where, Arg, Error)
167
172#define STKDOMAIN_ERROR_NO_ARG2(Where, Error) \
173 throw STK::domain_error(STKERROR_NO_ARG2(Where, Error))
174#define STKDOMAIN_ERROR_NO_ARG(Where, Error) \
175 STKDOMAIN_ERROR_NO_ARG2(Where, Error)
176
181#define STKINVALIDARGUMENT_ERROR_2ARG2(Where, Arg1, Arg2, Error) \
182 throw STK::invalid_argument(STKERROR_2ARG2(Where, Arg1, Arg2, Error))
183#define STKINVALIDARGUMENT_ERROR_2ARG(Where, Arg1, Arg2, Error) \
184 STKINVALIDARGUMENT_ERROR_2ARG2(Where, Arg1, Arg2, Error)
185
190#define STKINVALIDARGUMENT_ERROR_1ARG2(Where, Arg1, Error) \
191 throw STK::invalid_argument(STKERROR_1RG2(Where, Arg1, Error))
192#define STKINVALIDARGUMENT_ERROR_1ARG(Where, Arg1, Error) \
193 STKINVALIDARGUMENT_ERROR_1ARG2(Where, Arg1, Error)
194
199#define STKINVALIDARGUMENT_ERROR_NO_ARG2(Where, Error) \
200 throw STK::invalid_argument(STKERROR_NO_ARG2(Where, Error))
201#define STKINVALIDARGUMENT_ERROR_NO_ARG(Where, Error) \
202 STKINVALIDARGUMENT_ERROR_NO_ARG2(Where, Error)
203
204
205#endif /* STK_MACROS_H */