Main MRPT website > C++ reference for MRPT 1.9.9
Namespaces | Macros | Functions
mrpt_macros.h File Reference
#include <sstream>
#include <stdexcept>
#include <mrpt/config.h>

Go to the source code of this file.

Namespaces

 mrpt
 This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
 

Macros

#define MRPT_CHECK_GCC_VERSION(major, minor)   0
 MRPT_CHECK_GCC_VERSION(MAJ,MIN) More...
 
#define MRPT_VISUALC_VERSION(major)   0
 MRPT_CHECK_VISUALC_VERSION(Version) Version=8 for 2005, 9=2008, 10=2010, 11=2012, 12=2013, 14=2015. More...
 
#define MRPT_CHECK_VISUALC_VERSION(major)   0
 
#define __has_feature(x)   0
 
#define __has_extension   __has_feature
 
#define MRPT_DEPRECATED(msg)
 Usage: MRPT_DEPRECATED("Use XX instead") void myFunc(double);. More...
 
#define MRPT_DO_PRAGMA(x)
 Declare MRPT_TODO(message)
More...
 
#define MRPT_MSG_PRAGMA(_msg)
 
#define MRPT_WARNING(x)   MRPT_MSG_PRAGMA("Warning: " x)
 
#define MRPT_TODO(x)   MRPT_MSG_PRAGMA("TODO: " x)
 
#define MRPT_printf_format_check(_FMT_, _VARARGS_)
 
#define MRPT_scanf_format_check(_FMT_, _VARARGS_)
 
#define __CURRENT_FUNCTION_NAME__   __PRETTY_FUNCTION__
 A macro for obtaining the name of the current function:
More...
 
#define THROW_EXCEPTION(msg)
 
#define THROW_EXCEPTION_FMT(_FORMAT_STRING, ...)    THROW_EXCEPTION(mrpt::format(_FORMAT_STRING, __VA_ARGS__))
 
#define THROW_TYPED_EXCEPTION(msg, exceptionClass)
 Defines a unified way of reporting exceptions of type different than "std::exception". More...
 
#define THROW_TYPED_EXCEPTION_FMT(exceptionClass, _FORMAT_STRING, ...)
 
#define THROW_STACKED_EXCEPTION(e)
 
#define THROW_STACKED_EXCEPTION_CUSTOM_MSG1(e, msg)
 
#define THROW_STACKED_EXCEPTION_CUSTOM_MSG2(e, stuff, param1)
 
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
 For use in CSerializable implementations. More...
 
#define ASSERTMSG_(f, __ERROR_MSG)
 
#define ASSERT_(f)
 
#define MRPT_CHECK_NORMAL_NUMBER(val)
 
#define MRPT_COMPILE_TIME_ASSERT(f)
 
#define ASSERT_EQUAL_(__A, __B)
 
#define ASSERT_NOT_EQUAL_(__A, __B)
 
#define ASSERT_BELOW_(__A, __B)
 
#define ASSERT_ABOVE_(__A, __B)
 
#define ASSERT_BELOWEQ_(__A, __B)
 
#define ASSERT_ABOVEEQ_(__A, __B)
 
#define ASSERT_FILE_EXISTS_(FIL)
 
#define ASSERT_DIRECTORY_EXISTS_(DIR)
 
#define ASSERTDEB_(f)
 Defines an assertion mechanism - only when compiled in debug. More...
 
#define ASSERTDEBMSG_(f, __ERROR_MSG)
 
#define MRPT_UNUSED_PARAM(a)   (void)(a)
 Can be used to avoid "not used parameters" warnings from the compiler. More...
 
#define MRPT_TRY_START
 
#define MRPT_TRY_END
 
#define MRPT_TRY_END_WITH_CLEAN_UP(stuff)
 
#define MRPT_PROFILE_FUNC_START
 
#define MRPT_START
 
#define MRPT_END   MRPT_TRY_END
 
#define MRPT_END_WITH_CLEAN_UP(stuff)   MRPT_TRY_END_WITH_CLEAN_UP(stuff)
 
#define M_2PI   6.283185307179586476925286766559
 
#define M_PIf   3.14159265358979f
 
#define M_2PIf   6.28318530717959f
 
#define MRPT_printf_format_check(_FMT_, _VARARGS_)
 
#define MRPT_scanf_format_check(_FMT_, _VARARGS_)
 
#define MRPT_FORCE_INLINE   inline
 Tells the compiler we really want to inline that function. More...
 
#define PRIuSIZE   zu
 Format specifier for size_t variables in a OS-independent, processor architecture-independent way. More...
 
#define QUOTE(name)   #name
 
#define STR(macro)   QUOTE(macro)
 
#define USIZE_STR   STR(PRIuSIZE)
 

Functions

std::string mrpt::format (const char *fmt,...) MRPT_printf_format_check(1
 A std::string version of C sprintf. More...
 

Macro Definition Documentation

◆ __CURRENT_FUNCTION_NAME__

#define __CURRENT_FUNCTION_NAME__   __PRETTY_FUNCTION__

A macro for obtaining the name of the current function:

Definition at line 103 of file mrpt_macros.h.

◆ __has_extension

#define __has_extension   __has_feature

Definition at line 47 of file mrpt_macros.h.

◆ __has_feature

#define __has_feature (   x)    0

Definition at line 44 of file mrpt_macros.h.

◆ ASSERT_

#define ASSERT_ (   f)
Value:
{ \
}

Definition at line 309 of file mrpt_macros.h.

◆ ASSERT_ABOVE_

#define ASSERT_ABOVE_ (   __A,
  __B 
)
Value:
{ \
}

Definition at line 327 of file mrpt_macros.h.

◆ ASSERT_ABOVEEQ_

#define ASSERT_ABOVEEQ_ (   __A,
  __B 
)
Value:
{ \
}

Definition at line 333 of file mrpt_macros.h.

◆ ASSERT_BELOW_

#define ASSERT_BELOW_ (   __A,
  __B 
)
Value:
{ \
}

Definition at line 324 of file mrpt_macros.h.

◆ ASSERT_BELOWEQ_

#define ASSERT_BELOWEQ_ (   __A,
  __B 
)
Value:
{ \
}

Definition at line 330 of file mrpt_macros.h.

◆ ASSERT_DIRECTORY_EXISTS_

#define ASSERT_DIRECTORY_EXISTS_ (   DIR)
Value:
{ \
}

Definition at line 340 of file mrpt_macros.h.

◆ ASSERT_EQUAL_

#define ASSERT_EQUAL_ (   __A,
  __B 
)
Value:
{ \
}

Definition at line 318 of file mrpt_macros.h.

◆ ASSERT_FILE_EXISTS_

#define ASSERT_FILE_EXISTS_ (   FIL)
Value:
{ \
}

Definition at line 337 of file mrpt_macros.h.

◆ ASSERT_NOT_EQUAL_

#define ASSERT_NOT_EQUAL_ (   __A,
  __B 
)
Value:
{ \
}

Definition at line 321 of file mrpt_macros.h.

◆ ASSERTDEB_

#define ASSERTDEB_ (   f)
Value:
{ \
}

Defines an assertion mechanism - only when compiled in debug.

Note
Do NOT put code that must be always executed inside this statement, but just comparisons. This is because users might require ASSERT_'s to be ignored for optimized releases.
See also
MRPT_TRY_START, MRPT_TRY_END

Definition at line 355 of file mrpt_macros.h.

◆ ASSERTDEBMSG_

#define ASSERTDEBMSG_ (   f,
  __ERROR_MSG 
)
Value:
{ \
}

Definition at line 358 of file mrpt_macros.h.

◆ ASSERTMSG_

#define ASSERTMSG_ (   f,
  __ERROR_MSG 
)
Value:
{ \
}

Definition at line 306 of file mrpt_macros.h.

◆ M_2PI

#define M_2PI   6.283185307179586476925286766559

Definition at line 437 of file mrpt_macros.h.

◆ M_2PIf

#define M_2PIf   6.28318530717959f

Definition at line 441 of file mrpt_macros.h.

◆ M_PIf

#define M_PIf   3.14159265358979f

Definition at line 440 of file mrpt_macros.h.

◆ MRPT_CHECK_GCC_VERSION

#define MRPT_CHECK_GCC_VERSION (   major,
  minor 
)    0

MRPT_CHECK_GCC_VERSION(MAJ,MIN)

Definition at line 22 of file mrpt_macros.h.

◆ MRPT_CHECK_NORMAL_NUMBER

#define MRPT_CHECK_NORMAL_NUMBER (   val)
Value:
{ \
}

Definition at line 312 of file mrpt_macros.h.

◆ MRPT_CHECK_VISUALC_VERSION

#define MRPT_CHECK_VISUALC_VERSION (   major)    0

Definition at line 29 of file mrpt_macros.h.

◆ MRPT_COMPILE_TIME_ASSERT

#define MRPT_COMPILE_TIME_ASSERT (   f)
Value:
{ \
}

Definition at line 315 of file mrpt_macros.h.

◆ MRPT_DEPRECATED

#define MRPT_DEPRECATED (   msg)

Usage: MRPT_DEPRECATED("Use XX instead") void myFunc(double);.

Definition at line 63 of file mrpt_macros.h.

◆ MRPT_DO_PRAGMA

#define MRPT_DO_PRAGMA (   x)

Declare MRPT_TODO(message)

Definition at line 77 of file mrpt_macros.h.

◆ MRPT_END

#define MRPT_END   MRPT_TRY_END

Definition at line 429 of file mrpt_macros.h.

◆ MRPT_END_WITH_CLEAN_UP

#define MRPT_END_WITH_CLEAN_UP (   stuff)    MRPT_TRY_END_WITH_CLEAN_UP(stuff)

Definition at line 431 of file mrpt_macros.h.

◆ MRPT_FORCE_INLINE

#define MRPT_FORCE_INLINE   inline

Tells the compiler we really want to inline that function.

Definition at line 468 of file mrpt_macros.h.

◆ MRPT_MSG_PRAGMA

#define MRPT_MSG_PRAGMA (   _msg)

Definition at line 78 of file mrpt_macros.h.

◆ MRPT_printf_format_check [1/2]

#define MRPT_printf_format_check (   _FMT_,
  _VARARGS_ 
)

Definition at line 453 of file mrpt_macros.h.

◆ MRPT_printf_format_check [2/2]

#define MRPT_printf_format_check (   _FMT_,
  _VARARGS_ 
)

Definition at line 453 of file mrpt_macros.h.

◆ MRPT_PROFILE_FUNC_START

#define MRPT_PROFILE_FUNC_START

Definition at line 418 of file mrpt_macros.h.

◆ MRPT_scanf_format_check [1/2]

#define MRPT_scanf_format_check (   _FMT_,
  _VARARGS_ 
)

Definition at line 461 of file mrpt_macros.h.

◆ MRPT_scanf_format_check [2/2]

#define MRPT_scanf_format_check (   _FMT_,
  _VARARGS_ 
)

Definition at line 461 of file mrpt_macros.h.

◆ MRPT_START

#define MRPT_START
Value:
MRPT_PROFILE_FUNC_START \
MRPT_TRY_START

Definition at line 425 of file mrpt_macros.h.

◆ MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION

#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION (   __V)
Value:
"Cannot parse object: unknown serialization version number: '%i'", \
static_cast<int>(__V)))
#define THROW_EXCEPTION(msg)
Definition: mrpt_macros.h:111
std::string format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
Definition: format.cpp:19

For use in CSerializable implementations.

Definition at line 181 of file mrpt_macros.h.

◆ MRPT_TODO

#define MRPT_TODO (   x)    MRPT_MSG_PRAGMA("TODO: " x)

Definition at line 82 of file mrpt_macros.h.

◆ MRPT_TRY_END

#define MRPT_TRY_END

Definition at line 409 of file mrpt_macros.h.

◆ MRPT_TRY_END_WITH_CLEAN_UP

#define MRPT_TRY_END_WITH_CLEAN_UP (   stuff)

Definition at line 410 of file mrpt_macros.h.

◆ MRPT_TRY_START

#define MRPT_TRY_START

Definition at line 408 of file mrpt_macros.h.

◆ MRPT_UNUSED_PARAM

#define MRPT_UNUSED_PARAM (   a)    (void)(a)

Can be used to avoid "not used parameters" warnings from the compiler.

Definition at line 365 of file mrpt_macros.h.

◆ MRPT_VISUALC_VERSION

#define MRPT_VISUALC_VERSION (   major)    0

MRPT_CHECK_VISUALC_VERSION(Version) Version=8 for 2005, 9=2008, 10=2010, 11=2012, 12=2013, 14=2015.

Definition at line 28 of file mrpt_macros.h.

◆ MRPT_WARNING

#define MRPT_WARNING (   x)    MRPT_MSG_PRAGMA("Warning: " x)

Definition at line 81 of file mrpt_macros.h.

◆ PRIuSIZE

#define PRIuSIZE   zu

Format specifier for size_t variables in a OS-independent, processor architecture-independent way.

See https://stackoverflow.com/questions/40202990/print-a-size-t-in-a-os-independent-architecture-independent-way for the initial post

Definition at line 481 of file mrpt_macros.h.

◆ QUOTE

#define QUOTE (   name)    #name

Definition at line 483 of file mrpt_macros.h.

◆ STR

#define STR (   macro)    QUOTE(macro)

Definition at line 484 of file mrpt_macros.h.

◆ THROW_EXCEPTION

#define THROW_EXCEPTION (   msg)
Value:
{ \
std::ostringstream auxCompStr; \
auxCompStr << "\n\n =============== MRPT EXCEPTION =============\n"; \
auxCompStr << __CURRENT_FUNCTION_NAME__ << ", line " << __LINE__ \
<< ":\n"; \
auxCompStr << msg << std::endl; \
throw std::logic_error(auxCompStr.str()); \
}
#define __CURRENT_FUNCTION_NAME__
A macro for obtaining the name of the current function:
Definition: mrpt_macros.h:103
Parameters
msgThis can be a char*, a std::string, or a literal string. Defines a unified way of reporting exceptions
See also
MRPT_TRY_START, MRPT_TRY_END, THROW_EXCEPTION_FMT

Definition at line 111 of file mrpt_macros.h.

◆ THROW_EXCEPTION_FMT

#define THROW_EXCEPTION_FMT (   _FORMAT_STRING,
  ... 
)     THROW_EXCEPTION(mrpt::format(_FORMAT_STRING, __VA_ARGS__))

Definition at line 121 of file mrpt_macros.h.

◆ THROW_STACKED_EXCEPTION

#define THROW_STACKED_EXCEPTION (   e)
Value:
{ \
std::string _tse_str(mrpt::format("%s\n", e.what())); \
_tse_str += mrpt::format( \
" %s:%i: In `%s`\n", __FILE__, __LINE__, \
throw std::logic_error(_tse_str); \
}
GLsizei const GLchar ** string
Definition: glext.h:4101
See also
MRPT_TRY_START, MRPT_TRY_END

Definition at line 146 of file mrpt_macros.h.

◆ THROW_STACKED_EXCEPTION_CUSTOM_MSG1

#define THROW_STACKED_EXCEPTION_CUSTOM_MSG1 (   e,
  msg 
)
Value:
{ \
std::ostringstream auxCompStr; \
auxCompStr << e.what(); \
auxCompStr << msg << std::endl; \
throw std::logic_error(auxCompStr.str()); \
}

Definition at line 159 of file mrpt_macros.h.

◆ THROW_STACKED_EXCEPTION_CUSTOM_MSG2

#define THROW_STACKED_EXCEPTION_CUSTOM_MSG2 (   e,
  stuff,
  param1 
)
Value:
{ \
std::ostringstream auxCompStr; \
auxCompStr << e.what(); \
auxCompStr << mrpt::format(stuff, param1) << std::endl; \
throw std::logic_error(auxCompStr.str()); \
}

Definition at line 172 of file mrpt_macros.h.

◆ THROW_TYPED_EXCEPTION

#define THROW_TYPED_EXCEPTION (   msg,
  exceptionClass 
)
Value:
{ \
std::ostringstream auxCompStr; \
auxCompStr << "\n\n =============== MRPT EXCEPTION =============\n"; \
auxCompStr << __CURRENT_FUNCTION_NAME__ << ", line " << __LINE__ \
<< ":\n"; \
auxCompStr << msg << std::endl; \
throw exceptionClass(auxCompStr.str()); \
}

Defines a unified way of reporting exceptions of type different than "std::exception".

See also
MRPT_TRY_START, MRPT_TRY_END

Definition at line 129 of file mrpt_macros.h.

◆ THROW_TYPED_EXCEPTION_FMT

#define THROW_TYPED_EXCEPTION_FMT (   exceptionClass,
  _FORMAT_STRING,
  ... 
)
Value:
mrpt::format(_FORMAT_STRING, __VA_ARGS__), exceptionClass)
#define THROW_TYPED_EXCEPTION(msg, exceptionClass)
Defines a unified way of reporting exceptions of type different than "std::exception".
Definition: mrpt_macros.h:129

Definition at line 139 of file mrpt_macros.h.

◆ USIZE_STR

#define USIZE_STR   STR(PRIuSIZE)

Definition at line 485 of file mrpt_macros.h.




Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 63ea9d1f1 Thu Nov 23 00:06:53 2017 +0100 at mar 26 may 2026 12:19:29 CEST