30 #error "This file is intended for include from utils_defs.h only!"
37 #pragma warning(disable:4786) // (Compiler: Visual C++) Disable warning for too long debug names:
38 #pragma warning(disable:4503) // (Compiler: Visual C++ 2010) Disable warning for too long decorated name
39 #pragma warning(disable:4702) // (Compiler: Visual C++) Disable warning for unreachable code (I don't know why some of these errors appear in the STANDARD LIBRARY headers with Visual Studio 2003!):
40 #pragma warning(disable:4244) // (Compiler: Visual C++) Conversion double->float
41 #pragma warning(disable:4305)
42 #pragma warning(disable:4308) // Disable warning for Eigen3 libs: negative integral converted to unsigned
43 #pragma warning(disable:4267)
44 #pragma warning(disable:4290) // Visual C++ does not implement decl. specifiers: throw(A,B,...)
45 #pragma warning(disable:4251) // Visual C++ 2003+ warnings on STL classes when exporting to DLL...
46 #pragma warning(disable:4275)
47 #pragma warning(disable:4308) // Disable for Eigen: negative integral constant converted to unsigned int
48 #if (_MSC_VER >= 1400 )
50 #ifndef _SCL_SECURE_NO_WARNINGS
51 #define _SCL_SECURE_NO_WARNINGS
55 #if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES)
56 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
63 #if defined(MRPT_OS_WINDOWS) && !defined(NOMINMAX)
74 #if defined(_MSC_VER) && (_MSC_VER<1300)
78 template<
class T>
inline const T max(
const T& A,
const T& B) {
return A>B ? A:B; }
79 template<
class T>
inline const T min(
const T& A,
const T& B) {
return A<B ? A:B; }
82 # define MAX3_MSVC6_VERSION
87 #ifndef MAX3_MSVC6_VERSION
88 template<
typename T>
inline const T
min3(
const T& A,
const T& B,
const T& C) {
return std::min<T>(A, std::min<T>(B,C) ); }
89 template<
typename T>
inline const T
max3(
const T& A,
const T& B,
const T& C) {
return std::max<T>(A, std::max<T>(B,C) ); }
91 # define max3(A,B,C) max(A,max(B,C))
92 # define min3(A,B,C) min(A,min(B,C))