dune-alugrid  2.6-git
Macros
duneassert.hh File Reference
#include <cstdlib>
#include <unistd.h>
#include <iostream>
#include <mpi.h>

Go to the source code of this file.

Macros

#define ASSERT_HALT(p)   ((void)sizeof(p)), abort()
 
#define dune_assert_(x, p)   ((void)(!(x) && assert_handler(#x, __FILE__, __LINE__) && (ASSERT_HALT(p), 1)))
 
#define dune_assert0_(x)   dune_assert_(x,-1)
 
#define dune_assert1_(x, p)   dune_assert_(x,p)
 
#define GET_ASSERT_MACRO(_1, _2, NAME, ...)   NAME
 
#define dune_assert(...)   GET_ASSERT_MACRO(__VA_ARGS__, dune_assert1_, dune_assert0_)(__VA_ARGS__)
 

Macro Definition Documentation

◆ ASSERT_HALT

#define ASSERT_HALT (   p)    ((void)sizeof(p)), abort()

◆ dune_assert

#define dune_assert (   ...)    GET_ASSERT_MACRO(__VA_ARGS__, dune_assert1_, dune_assert0_)(__VA_ARGS__)

◆ dune_assert0_

#define dune_assert0_ (   x)    dune_assert_(x,-1)

◆ dune_assert1_

#define dune_assert1_ (   x,
 
)    dune_assert_(x,p)

◆ dune_assert_

#define dune_assert_ (   x,
 
)    ((void)(!(x) && assert_handler(#x, __FILE__, __LINE__) && (ASSERT_HALT(p), 1)))

◆ GET_ASSERT_MACRO

#define GET_ASSERT_MACRO (   _1,
  _2,
  NAME,
  ... 
)    NAME