sot-talos-balance  1.5.0
warning.hh
Go to the documentation of this file.
1 // Copyright (C) 2008-2018 LAAS-CNRS, JRL AIST-CNRS.
2 //
3 // Redistribution and use in source and binary forms, with or without modification,
4 // are permitted provided that the following conditions are met:
5 //
6 // 1. Redistributions of source code must retain the above copyright notice,
7 // this list of conditions and the following disclaimer.
8 //
9 // 2. Redistributions in binary form must reproduce the above copyright notice,
10 // this list of conditions and the following disclaimer in the documentation
11 // and/or other materials provided with the distribution.
12 //
13 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
17 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23 // POSSIBILITY OF SUCH DAMAGE.
24 
25 #ifndef SOT_TALOS_BALANCE_WARNING_HH
26 # define SOT_TALOS_BALANCE_WARNING_HH
27 
28 // Emits a warning in a portable way.
29 //
30 // To emit a warning, one can insert:
31 //
32 // #pragma message SOT_TALOS_BALANCE_WARN("your warning message here")
33 //
34 // The use of this syntax is required as this is /not/ a standardized
35 // feature of C++ language or preprocessor, even if most of the
36 // compilers support it.
37 
38 # define SOT_TALOS_BALANCE_WARN_STRINGISE_IMPL(x) #x
39 # define SOT_TALOS_BALANCE_WARN_STRINGISE(x) \
40  SOT_TALOS_BALANCE_WARN_STRINGISE_IMPL(x)
41 # ifdef __GNUC__
42 # define SOT_TALOS_BALANCE_WARN(exp) ("WARNING: " exp)
43 # else
44 # ifdef _MSC_VER
45 # define FILE_LINE_LINK __FILE__ "(" \
46  SOT_TALOS_BALANCE_WARN_STRINGISE(__LINE__) ") : "
47 # define SOT_TALOS_BALANCE_WARN(exp) (FILE_LINE_LINK "WARNING: " exp)
48 # else
49 // If the compiler is not recognized, drop the feature.
50 # define SOT_TALOS_BALANCE_WARN(MSG) /* nothing */
51 # endif // __MSVC__
52 # endif // __GNUC__
53 
54 #endif