CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
System::detail::Is_A_Internal< TypeToBe > Struct Template Reference

Helper class to check if specific type is a specialization of a given template. More...

#include <detail.h>

Public Types

template<typename Tested >
using type = decltype(Invoke((Tested *) nullptr))
 If Tested is a specialization of TypeToBe, typedefs std::true_type, otherwise typedefs std::false_type. More...
 

Static Public Member Functions

static std::false_type Invoke (...)
 Detects that pointee is not a template specialization. More...
 
template<typename ... P>
static std::true_type Invoke (const TypeToBe< P... > *)
 Detects that pointee is a template specialization. More...
 

Detailed Description

template<template< class ...T > class TypeToBe>
struct System::detail::Is_A_Internal< TypeToBe >

Helper class to check if specific type is a specialization of a given template.

Template Parameters
TypeToBeTemplate to check against.
TFormal arguments of template to check against.

Member Typedef Documentation

◆ type

template<template< class ...T > class TypeToBe>
template<typename Tested >
using System::detail::Is_A_Internal< TypeToBe >::type = decltype(Invoke((Tested*)nullptr))

If Tested is a specialization of TypeToBe, typedefs std::true_type, otherwise typedefs std::false_type.

Template Parameters
TestedType to check for being TypeToBe specialization.

Member Function Documentation

◆ Invoke() [1/2]

template<template< class ...T > class TypeToBe>
static std::false_type System::detail::Is_A_Internal< TypeToBe >::Invoke (   ...)
static

Detects that pointee is not a template specialization.

◆ Invoke() [2/2]

template<template< class ...T > class TypeToBe>
template<typename ... P>
static std::true_type System::detail::Is_A_Internal< TypeToBe >::Invoke ( const TypeToBe< P... > *  )
static

Detects that pointee is a template specialization.

Template Parameters
PTemplate actual arguments.