MLIR  21.0.0git
Public Types | Static Public Attributes | List of all members
mlir::detail::is_fully_resolved_t< T > Struct Template Reference

#include "mlir/Support/TypeID.h"

Public Types

template<typename U >
using is_fully_resolved_trait = decltype(sizeof(U))
 Trait to check if U is fully resolved. More...
 
template<typename U >
using is_fully_resolved = llvm::is_detected< is_fully_resolved_trait, U >
 

Static Public Attributes

static constexpr bool value = is_fully_resolved<T>::value
 

Detailed Description

template<typename T>
struct mlir::detail::is_fully_resolved_t< T >

Definition at line 171 of file TypeID.h.

Member Typedef Documentation

◆ is_fully_resolved

template<typename T >
template<typename U >
using mlir::detail::is_fully_resolved_t< T >::is_fully_resolved = llvm::is_detected<is_fully_resolved_trait, U>

Definition at line 181 of file TypeID.h.

◆ is_fully_resolved_trait

template<typename T >
template<typename U >
using mlir::detail::is_fully_resolved_t< T >::is_fully_resolved_trait = decltype(sizeof(U))

Trait to check if U is fully resolved.

We use this to verify that T is fully resolved when trying to resolve a TypeID. We don't technically need to have the full definition of T for the fallback, but it does help prevent situations where a forward declared type uses this fallback even though there is a strong definition for the TypeID in the location where T is defined.

Definition at line 179 of file TypeID.h.

Member Data Documentation

◆ value

template<typename T >
constexpr bool mlir::detail::is_fully_resolved_t< T >::value = is_fully_resolved<T>::value
staticconstexpr

Definition at line 182 of file TypeID.h.


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