IMP logo
IMP Reference Guide  2.15.0
The Integrative Modeling Platform
compiler_macros.h File Reference

Various compiler workarounds. More...

#include <boost/config.hpp>
#include <boost/version.hpp>
+ Include dependency graph for compiler_macros.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define IMP_C_CLOSE   close
 
#define IMP_C_OPEN   open
 platform independent C open() method More...
 
#define IMP_C_OPEN_BINARY   0
 
#define IMP_C_OPEN_FLAG(x)   x
 platform independent C flag for open() method More...
 
#define IMP_CLANG_PRAGMA(x)
 
#define IMP_COMPILER_DISABLE_WARNINGS
 
#define IMP_COMPILER_ENABLE_WARNINGS
 
#define IMP_COMPILER_HAS_FINAL   0
 
#define IMP_COMPILER_HAS_OVERRIDE   0
 
#define IMP_CURRENT_FUNCTION   __func__
 
#define IMP_CURRENT_PRETTY_FUNCTION   __PRETTY_FUNCTION__
 
#define IMP_CXX11_DEFAULT_COPY_CONSTRUCTOR(Name)
 
#define IMP_DEPRECATED_ATTRIBUTE
 
#define IMP_FINAL
 Have the compiler report an error if anything overrides this method. More...
 
#define IMP_FOREACH(v, r)   for (v : r)
 
#define IMP_GCC_PRAGMA(x)
 
#define IMP_HAS_NOEXCEPT   0
 
#define IMP_HELPER_MACRO_POP_WARNINGS
 
#define IMP_HELPER_MACRO_PUSH_WARNINGS
 
#define IMP_LIKELY(x)   x
 
#define IMP_NO_SIDEEFFECTS
 Use this to label a function with no side effects. More...
 
#define IMP_NOEXCEPT   throw()
 
#define IMP_OVERRIDE
 Cause a compile error if this method does not override a parent method. More...
 
#define IMP_PRAGMA(x)
 
#define IMP_RESTRICT
 restrict means that a variable is not aliased with this function More...
 
#define IMP_STRINGIFY(x)   #x
 
#define IMP_UNLIKELY(x)   x
 
#define IMP_UNUSED_FUNCTION
 Label a function that is never called. More...
 
#define IMP_VC_PRAGMA(x)
 
#define IMP_WARN_UNUSED_RESULT
 Use this to make the compiler (possibly) warn if the result is not used. More...
 

Detailed Description

Various compiler workarounds.

Copyright 2007-2021 IMP Inventors. All rights reserved.

Definition in file compiler_macros.h.

Macro Definition Documentation

#define IMP_C_OPEN   open

platform independent C open() method

Definition at line 265 of file compiler_macros.h.

#define IMP_C_OPEN_FLAG (   x)    x

platform independent C flag for open() method

Definition at line 268 of file compiler_macros.h.

#define IMP_FINAL

Have the compiler report an error if anything overrides this method.

Definition at line 100 of file compiler_macros.h.

#define IMP_FOREACH (   v,
 
)    for (v : r)

Use C++11 range-based for if available or BOOST_FOREACH if not.

Examples:
grid.cpp.

Definition at line 18 of file compiler_macros.h.

#define IMP_NO_SIDEEFFECTS

Use this to label a function with no side effects.

Note
Familiarity with these methods is not required to use IMP.

Definition at line 52 of file compiler_macros.h.

#define IMP_OVERRIDE

Cause a compile error if this method does not override a parent method.

This is helpful to catch accidental mismatches of call signatures between the method and the parent method, which would cause the method to be overloaded rather than overridden. Usually this macro should be used whenever implementing a method that is declared virtual in the parent.

Definition at line 78 of file compiler_macros.h.

#define IMP_RESTRICT

restrict means that a variable is not aliased with this function

Definition at line 60 of file compiler_macros.h.

#define IMP_UNUSED_FUNCTION

Label a function that is never called.

Note
Familiarity with these methods is not required to use IMP.

Definition at line 58 of file compiler_macros.h.

#define IMP_WARN_UNUSED_RESULT

Use this to make the compiler (possibly) warn if the result is not used.

Note
Familiarity with these methods is not required to use IMP.

Definition at line 55 of file compiler_macros.h.