VTK  9.7.20261102
vtkKeysTraits.h File Reference

the traits and checks of the concepts of vtk::keys, see vtkKeys.h More...

#include "vtkABINamespace.h"
#include <cstdint>
#include <type_traits>
#include <utility>
Include dependency graph for vtkKeysTraits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  vtk::keys::detail::HasGetNumberOfRecords< In, typename >
struct  vtk::keys::detail::HasGetNumberOfRecords< In, std::enable_if_t< std::is_integral_v< std::decay_t< decltype(std::declval< const In & >().GetNumberOfRecords())> > > >
struct  vtk::keys::detail::GetKeyTypeOf< In, typename >
struct  vtk::keys::detail::GetKeyTypeOf< In, std::void_t< decltype(std::declval< const In & >().GetKey(std::declval< RecordIdOf< In > >()))> >
struct  vtk::keys::detail::KeyTypeOf< In, typename >
struct  vtk::keys::detail::KeyTypeOf< In, std::void_t< typename In::KeyType > >
struct  vtk::keys::detail::RecordIdTypeOf< In, typename >
struct  vtk::keys::detail::RecordIdTypeOf< In, std::enable_if_t< HasGetNumberOfRecords< In >::value > >
struct  vtk::keys::detail::ElementIdTypeOf< In, typename >
struct  vtk::keys::detail::ElementIdTypeOf< In, std::void_t< typename In::ElementIdType > >
struct  vtk::keys::detail::HasCountElements< In, ElementId, typename >
struct  vtk::keys::detail::HasCountElements< In, ElementId, std::void_t< decltype(std::declval< const In & >().CountElements(std::declval< RecordIdOf< In > >(), std::declval< RecordIdOf< In > >(), std::declval< ElementId * >()))> >
struct  vtk::keys::detail::HasSetElementImpl< Out, ElementId, Void, Values >
struct  vtk::keys::detail::HasSetElementImpl< Out, ElementId, std::void_t< decltype(std::declval< Out & >().SetElement(std::declval< ElementId >(), std::declval< Values >()...))>, Values... >
struct  vtk::keys::detail::HasGetKey< In, Key, typename >
struct  vtk::keys::detail::HasGetKey< In, Key, std::enable_if_t< std::is_convertible_v< decltype(std::declval< const In & >().GetKey(std::declval< RecordIdOf< In > >())), Key > > >
struct  vtk::keys::detail::HasWriteKeys< In, ElementId, Key, typename >
struct  vtk::keys::detail::HasWriteKeys< In, ElementId, Key, std::void_t< decltype(std::declval< const In & >().WriteKeys(std::declval< RecordIdOf< In > >(), std::declval< RecordIdOf< In > >(), std::declval< const ElementId * >(), std::declval< Key * >()))> >
struct  vtk::keys::detail::HasSetNumberOfElements< Out, ElementId, typename >
struct  vtk::keys::detail::HasSetNumberOfElements< Out, ElementId, std::void_t< decltype(std::declval< Out & >().SetNumberOfElements(std::declval< ElementId >()))> >
struct  vtk::keys::detail::HasLess< T, typename >
struct  vtk::keys::detail::HasLess< T, std::enable_if_t< std::is_convertible_v< decltype(std::declval< const T & >()< std::declval< const T & >()), bool > > >
struct  vtk::keys::detail::HasInitialize< P, typename >
struct  vtk::keys::detail::HasInitialize< P, std::void_t< decltype(std::declval< P & >().Initialize())> >
struct  vtk::keys::detail::HasReduce< P, typename >
struct  vtk::keys::detail::HasReduce< P, std::void_t< decltype(std::declval< P & >().Reduce())> >
struct  vtk::keys::detail::HasCopyData< Out, ElementId, typename >
struct  vtk::keys::detail::HasCopyData< Out, ElementId, std::void_t< decltype(std::declval< Out & >().CopyData(std::declval< const Out & >(), std::declval< ElementId >(), std::declval< ElementId >(), std::declval< ElementId >()))> >
struct  vtk::keys::detail::HasEqual< T, typename >
struct  vtk::keys::detail::HasEqual< T, std::enable_if_t< std::is_convertible_v< decltype(std::declval< const T & >()==std::declval< const T & >()), bool > > >
struct  vtk::keys::detail::HasNotEqual< T, typename >
struct  vtk::keys::detail::HasNotEqual< T, std::enable_if_t< std::is_convertible_v< decltype(std::declval< const T & >() !=std::declval< const T & >()), bool > > >

Namespaces

namespace  vtk
 Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
namespace  vtk::keys
namespace  vtk::keys::detail

Typedefs

template<typename In>
using vtk::keys::detail::RecordIdOf = std::decay_t<decltype(std::declval<const In&>().GetNumberOfRecords())>
template<typename In>
using vtk::keys::detail::KeyTypeOfT = typename KeyTypeOf<In>::type
template<typename In>
using vtk::keys::detail::ElementIdTypeOfT = typename ElementIdTypeOf<In>::type
template<typename T>
using vtk::keys::detail::ElementKeyOf = std::decay_t<decltype(std::declval<const T&>().GetKey())>
template<typename Out, typename ElementId, typename... Values>
using vtk::keys::detail::HasSetElement = HasSetElementImpl<Out, ElementId, void, Values...>
template<typename T>
using vtk::keys::detail::IsKeys = decltype(IsKeysImpl(std::declval<const T*>()))

Functions

template<typename InputMapper>
constexpr bool vtk::keys::detail::ValidateCountElements ()
template<typename Output, typename ElementIdType, typename... Values>
constexpr bool vtk::keys::detail::ValidateSetElement ()
template<typename Input, typename Output>
constexpr bool vtk::keys::detail::ValidateScatter ()
template<typename KeyType>
constexpr bool vtk::keys::detail::ValidateDenseKey ()
template<typename Element, typename ElementIdType>
constexpr bool vtk::keys::detail::ValidateArray ()
template<typename KeyType>
constexpr bool vtk::keys::detail::ValidateSparseKey ()
template<typename TKey, typename TElementId, typename TKeyId>
std::true_type vtk::keys::detail::IsKeysImpl (const KeysBase< TKey, TElementId, TKeyId > *)
std::false_type vtk::keys::detail::IsKeysImpl (...)
template<typename Keys>
constexpr bool vtk::keys::detail::ValidateKeys ()
template<typename Functor, typename Output, typename Keys, typename... Args>
constexpr bool vtk::keys::detail::ValidateKeyRangeFunctor ()
template<typename Functor, typename Output, typename Keys>
constexpr bool vtk::keys::detail::ValidateReduceFunctor ()
template<typename Output, typename ElementIdType>
constexpr bool vtk::keys::detail::ValidateCompactOutput ()
template<typename Element>
constexpr bool vtk::keys::detail::ValidateSortUnique ()
template<typename Functor, typename Output, typename Keys>
constexpr bool vtk::keys::detail::ValidateGroupFunctor ()
template<typename Element>
constexpr bool vtk::keys::detail::ValidateSortGroup ()

Detailed Description

the traits and checks of the concepts of vtk::keys, see vtkKeys.h

The type traits of the inputs and elements of vtkKeys.h (their KeyType and ElementIdType), the detection traits of the methods of its concepts, and the checks that report what to implement, in vtk::keys::detail.

Definition in file vtkKeysTraits.h.