LLVM  8.0.1
Classes | Public Types | Static Public Member Functions | Static Public Attributes | List of all members
llvm::mdconst::detail::HasDereference< T, Result > Struct Template Reference

#include "llvm/IR/Metadata.h"

Collaboration diagram for llvm::mdconst::detail::HasDereference< T, Result >:
Collaboration graph
[legend]

Classes

struct  SFINAE
 

Public Types

using Yes = char[1]
 
using No = char[2]
 

Static Public Member Functions

template<class U , class V >
static YeshasDereference (SFINAE< sizeof(static_cast< V >(*make< U >()))> *=0)
 
template<class U , class V >
static NohasDereference (...)
 

Static Public Attributes

static const bool value
 

Detailed Description

template<class T, class Result>
struct llvm::mdconst::detail::HasDereference< T, Result >

Definition at line 502 of file Metadata.h.

Member Typedef Documentation

◆ No

template<class T , class Result >
using llvm::mdconst::detail::HasDereference< T, Result >::No = char[2]

Definition at line 504 of file Metadata.h.

◆ Yes

template<class T , class Result >
using llvm::mdconst::detail::HasDereference< T, Result >::Yes = char[1]

Definition at line 503 of file Metadata.h.

Member Function Documentation

◆ hasDereference() [1/2]

template<class T , class Result >
template<class U , class V >
static Yes& llvm::mdconst::detail::HasDereference< T, Result >::hasDereference ( SFINAE< sizeof(static_cast< V >(*make< U >()))> *  = 0)
static

◆ hasDereference() [2/2]

template<class T , class Result >
template<class U , class V >
static No& llvm::mdconst::detail::HasDereference< T, Result >::hasDereference (   ...)
static

Member Data Documentation

◆ value

template<class T , class Result >
const bool llvm::mdconst::detail::HasDereference< T, Result >::value
static
Initial value:
=
sizeof(hasDereference<T, Result>(nullptr)) == sizeof(Yes)

Definition at line 511 of file Metadata.h.


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