40#if defined(OGDF_DEBUG) && defined(NDEBUG)
41# error "Contradicting configuration: Macros OGDF_DEBUG and NDEBUG are defined."
52#if defined(unix) || defined(__unix__) || defined(__unix) || defined(_AIX) || defined(__APPLE__)
53# define OGDF_SYSTEM_UNIX
56#if defined(__WIN32__) || defined(_WIN32) || defined(__NT__)
57# define OGDF_SYSTEM_WINDOWS
62# define OGDF_SYSTEM_OSX
67#if __cplusplus < 201103
71# error "Compiling OGDF requires Visual C++ 11 (Visual Studio 2012) or higher!"
74# elif defined(__GNUC__)
75# ifndef __GXX_EXPERIMENTAL_CXX0X__
76# error "No C++11 support activated for g++ (compile with -std=c++0x or -std=c++11)!"
80# error "Compiling OGDF requires a C++11 compliant compiler!"
85#ifdef __has_cpp_attribute
86# define OGDF_HAS_CPP_ATTRIBUTE(x) \
87 (__has_cpp_attribute(x) && __cplusplus >= __has_cpp_attribute(x))
89# define OGDF_HAS_CPP_ATTRIBUTE(x) 0
103#ifdef OGDF_SYSTEM_WINDOWS
107# define OGDF_EXPORT __declspec(dllexport)
109# define OGDF_EXPORT __declspec(dllimport)
120#define OGDF_DEPRECATED(reason)
122#if OGDF_HAS_CPP_ATTRIBUTE(deprecated)
123# undef OGDF_DEPRECATED
124# define OGDF_DEPRECATED(reason) [[deprecated(reason)]]
125#elif defined(_MSC_VER)
126# undef OGDF_DEPRECATED
127# define OGDF_DEPRECATED(reason) __declspec(deprecated(reason))
128#elif defined(__GNUC__)
129# undef OGDF_DEPRECATED
130# define OGDF_DEPRECATED(reason) __attribute__((deprecated(reason)))
143#define OGDF_LIKELY(x) (x)
150#define OGDF_UNLIKELY(x) (x)
154#define OGDF_DECL_ALIGN(b)
157# undef OGDF_DECL_ALIGN
158# define OGDF_DECL_ALIGN(b) __declspec(align(b))
159#elif defined(__GNUC__)
161# define OGDF_LIKELY(x) __builtin_expect((x), 1)
163# define OGDF_UNLIKELY(x) __builtin_expect((x), 0)
164# undef OGDF_DECL_ALIGN
165# define OGDF_DECL_ALIGN(b) __attribute__((aligned(b)))
171#define OGDF_CASE_FALLTHROUGH
172#if OGDF_HAS_CPP_ATTRIBUTE(fallthrough)
173# undef OGDF_CASE_FALLTHROUGH
174# define OGDF_CASE_FALLTHROUGH [[fallthrough]]
175#elif defined(__GNUC__) && __GNUC__ >= 7
176# undef OGDF_CASE_FALLTHROUGH
177# define OGDF_CASE_FALLTHROUGH __attribute__((fallthrough))
189# pragma warning(disable : 4251)
191# pragma warning(disable : 4275)
195# pragma warning(disable : 4355)
234#ifdef OGDF_SYSTEM_WINDOWS
235 return System::Windows;
236#elif defined(OGDF_SYSTEM_OSX)
238#elif defined(OGDF_SYSTEM_UNIX)
241 return System::Unknown
256#if defined(COIN_OSI_CLP)
257 return LPSolver::Clp;
258#elif defined(COIN_OSI_SYM)
259 return LPSolver::Symphony;
260#elif defined(COIN_OSI_CPX)
261 return LPSolver::CPLEX;
262#elif defined(COIN_OSI_GRB)
263 return LPSolver::Gurobi;
265# error "OGDF is compiled without LP solver. Check your build configuration."
301#if defined(OGDF_MEMORY_POOL_TS)
302 return MemoryManager::PoolTS;
303#elif defined(OGDF_MEMORY_POOL_NTS)
304 return MemoryManager::PoolNTS;
305#elif defined(OGDF_MEMORY_MALLOC_TS)
306 return MemoryManager::Malloc;
308# error "OGDF is compiled without memory manager. Check your build configuration."
Provides information about how OGDF has been configured.
static constexpr System whichSystem()
Returns the operating system for which OGDF has been configured.
static const string & toString(System sys)
Converts sys to a (readable) string.
static constexpr LPSolver whichLPSolver()
Returns the LP-solver used by OGDF.
LPSolver
Specifies the LP-solver used by OGDF.
static const string & toString(LPSolver lps)
Converts lps to a (readable) string.
System
Specifies the operating system for which OGDF has been configured/built.
MemoryManager
Specifies the memory-manager used by OGDF.
static const string & toString(MemoryManager mm)
Converts mm to a (readable) string.
static constexpr MemoryManager whichMemoryManager()
Returns the memory manager used by OGDF.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
#define OGDF_DEPRECATED(reason)
Mark a class / member / function as deprecated.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
@ None
Two geometric objects do not intersect.
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.