MIRA
Classes | Namespaces | Typedefs | Functions
RPCPatternCheck.h File Reference

Provides RPC SFINAE helper to check whether a provided description parameter pack is valid. More...

#include <type_traits>
#include <string>
Include dependency graph for RPCPatternCheck.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  HasParenthesis< T >
 
struct  ArgumentTuple< ARGS >
 
class  FunctionTraits< F, Enable >
 
class  FunctionTraits< F, typename std::enable_if< Private::HasParenthesis< F >::value >::type >
 
struct  FunctionTraits< F & >
 
struct  FunctionTraits< F && >
 
struct  FunctionTraits< R(*)(Args...)>
 
class  FunctionTraits< R(Args...)>
 
class  FunctionTraits< R(C::*)(Args...)>
 
class  FunctionTraits< R(C::*)(Args...) const >
 
class  FunctionTraits< R(C::*)>
 

Namespaces

 mira
 specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
 
 mira::Private
 
 mira::Private::rpc
 

Typedefs

template<typename F , typename... Description>
using ValidRPCDescription = typename std::enable_if< Private::rpc::isValid< F, Description... >()>::type
 
template<typename F , typename... Description>
using InvalidRPCDescription = typename std::enable_if<!Private::rpc::isValid< F, Description... >()>::type
 

Functions

template<typename A , typename B >
static constexpr bool isConstr ()
 
template<typename... Args, typename... Descriptions>
constexpr std::enable_if<((sizeof...(Args)) *3 !=sizeof...(Descriptions)) &&((sizeof...(Args)) *2 !=sizeof...(Descriptions)), bool >::type correctPattern (ArgumentTuple< Args... > a, ArgumentTuple< Descriptions... > b)
 
constexpr bool correctPattern (ArgumentTuple<> a, ArgumentTuple<> b)
 
template<typename HeadArg , typename... TailArgs, typename Name , typename Description , typename Example , typename... TailDocs>
constexpr std::enable_if<(sizeof...(TailArgs)) *3==sizeof...(TailDocs), bool >::type correctPattern (ArgumentTuple< HeadArg, TailArgs... > a, ArgumentTuple< Name, Description, Example, TailDocs... > b)
 
template<typename HeadArg , typename... TailArgs, typename Name , typename Description , typename... TailDocs>
constexpr std::enable_if<(sizeof...(TailArgs)) *2==sizeof...(TailDocs), bool >::type correctPattern (ArgumentTuple< HeadArg, TailArgs... > a, ArgumentTuple< Name, Description, TailDocs... > b)
 
template<typename HeadArg , typename... TailArgs>
constexpr bool correctPattern (ArgumentTuple< HeadArg, TailArgs... > a, ArgumentTuple<> b)
 
template<typename F , typename Comment , typename... Description>
constexpr std::enable_if<!FunctionTraits< F >::isFunction, bool >::type isValid ()
 
template<typename F , typename Comment , typename... Description>
constexpr std::enable_if< FunctionTraits< F >::isFunction, bool >::type isValid ()
 
template<typename T >
void assertName ()
 
template<typename T >
void assertDescription ()
 
template<typename ARG , typename EXAMPLE >
void assertExample ()
 
template<typename... Args, typename... Docs>
std::enable_if<((sizeof...(Args)) *3 !=sizeof...(Docs)) &&((sizeof...(Args)) *2 !=sizeof...(Docs))>::type patternError (ArgumentTuple< Args... > a, ArgumentTuple< Docs... > b)
 
void patternError (ArgumentTuple<> a, ArgumentTuple<> b)
 
template<typename HeadArg , typename... TailArgs, typename Name , typename Description , typename Example , typename... TailDocs>
std::enable_if<(sizeof...(TailArgs)) *3==sizeof...(TailDocs)>::type patternError (ArgumentTuple< HeadArg, TailArgs... > a, ArgumentTuple< Name, Description, Example, TailDocs... > b)
 
template<typename HeadArg , typename... TailArgs, typename Name , typename Description , typename... TailDocs>
std::enable_if<(sizeof...(TailArgs)) *2==sizeof...(TailDocs)>::type patternError (ArgumentTuple< HeadArg, TailArgs... > a, ArgumentTuple< Name, Description, TailDocs... > b)
 
template<typename F , typename Comment , typename... Description>
constexpr std::enable_if<!FunctionTraits< F >::isFunction >::type invalidAssertion ()
 
template<typename F , typename Comment , typename... Description>
constexpr std::enable_if< FunctionTraits< F >::isFunction >::type invalidAssertion ()
 

Detailed Description

Provides RPC SFINAE helper to check whether a provided description parameter pack is valid.

Author
Tom Mehner
Date
Aug 18, 2023