Program Listing for File compiler.hpp

Return to documentation for file (src/navtk/utils/compiler.hpp)

#pragma GCC diagnostic ignored WARNING
#pragma clang diagnostic ignored WARNING
#pragma once

#define STRINGIFY(X) #X

#ifdef __clang__
#   define PRAGMA_DIAGNOSTIC(X) _Pragma(STRINGIFY(clang diagnostic X))
#elif defined(__GNUC__)
#   define PRAGMA_DIAGNOSTIC(X) _Pragma(STRINGIFY(GCC diagnostic X))
#else
#   define PRAGMA_DIAGNOSTIC(ARGS)
#endif

#define BEGIN_SUPPRESS_WARNING(WARNING) \
    PRAGMA_DIAGNOSTIC(push)             \
    PRAGMA_DIAGNOSTIC(ignored WARNING) struct __begin_suppress_warning_requires_trailing_semicolon

#define END_SUPPRESS_WARNING \
    PRAGMA_DIAGNOSTIC(pop) struct __end_suppress_warning_requires_trailing_semicolon