walberla::debug::op_valid_impl< X, Y, Op > Struct Template Reference

Detailed Description

template<class X, class Y, class Op>
struct walberla::debug::op_valid_impl< X, Y, Op >

The implementation is directly taken from https://stackoverflow.com/a/39348287.

#include <OperatorCheck.h>

Public Types

using type = decltype(test< Op, X, Y >(0))
 

Static Public Member Functions

template<class U , class L , class R >
static auto test (int) -> decltype(std::declval< U >()(std::declval< L >(), std::declval< R >()), void(), std::true_type())
 
template<class U , class L , class R >
static auto test (...) -> std::false_type
 

Member Typedef Documentation

◆ type

template<class X , class Y , class Op >
using walberla::debug::op_valid_impl< X, Y, Op >::type = decltype(test<Op, X, Y>(0))

Member Function Documentation

◆ test() [1/2]

template<class X , class Y , class Op >
template<class U , class L , class R >
static auto walberla::debug::op_valid_impl< X, Y, Op >::test (   ...) -> std::false_type
static

◆ test() [2/2]

template<class X , class Y , class Op >
template<class U , class L , class R >
static auto walberla::debug::op_valid_impl< X, Y, Op >::test ( int  ) -> decltype(std::declval< U >()(std::declval< L >(), std::declval< R >()), void(), std::true_type())
static

The documentation for this struct was generated from the following file: