OperatorCheck.h File Reference
#include <algorithm>
#include <functional>
#include <iostream>
#include <string>
#include <utility>

Classes

struct  walberla::debug::op_valid_impl< X, Y, Op >
 The implementation is directly taken from https://stackoverflow.com/a/39348287. More...
 
struct  walberla::debug::notstd::left_shift
 
struct  walberla::debug::notstd::right_shift
 

Namespaces

 walberla
 \file TimestepTracker.h \ingroup lbm \author Frederik Hennig frede.nosp@m.rik..nosp@m.henni.nosp@m.g@fa.nosp@m.u.de
 
 walberla::debug
 
 walberla::debug::notstd
 

Typedefs

template<class X , class Y , class Op >
using walberla::debug::op_valid = typename op_valid_impl< X, Y, Op >::type
 
template<class X , class Y >
using walberla::debug::has_equality = op_valid< X, Y, std::equal_to<> >
 
template<class X , class Y >
using walberla::debug::has_inequality = op_valid< X, Y, std::not_equal_to<> >
 
template<class X , class Y >
using walberla::debug::has_less_than = op_valid< X, Y, std::less<> >
 
template<class X , class Y >
using walberla::debug::has_less_equal = op_valid< X, Y, std::less_equal<> >
 
template<class X , class Y >
using walberla::debug::has_greater_than = op_valid< X, Y, std::greater<> >
 
template<class X , class Y >
using walberla::debug::has_greater_equal = op_valid< X, Y, std::greater_equal<> >
 
template<class X , class Y >
using walberla::debug::has_bit_xor = op_valid< X, Y, std::bit_xor<> >
 
template<class X , class Y >
using walberla::debug::has_bit_or = op_valid< X, Y, std::bit_or<> >
 
template<class X , class Y >
using walberla::debug::has_left_shift = op_valid< X, Y, notstd::left_shift >
 
template<class X , class Y >
using walberla::debug::has_right_shift = op_valid< X, Y, notstd::right_shift >