VTK-m  1.5
Classes | Namespaces | Macros | Typedefs | Functions
List.h File Reference
#include <vtkm/Types.h>
#include <vtkm/internal/brigand.hpp>

Go to the source code of this file.

Classes

struct  vtkm::List< Ts >
 

Namespaces

 vtkm
 Groups connected points that have the same field value.
 

Macros

#define VTKM_IS_LIST(type)
 Checks that the argument is a proper list. More...
 

Typedefs

using vtkm::ListEmpty = vtkm::List<>
 A special tag for an empty list. More...
 
using vtkm::ListUniversal = vtkm::List< detail::UniversalTypeTag >
 A special tag for a list that represents holding all potential values. More...
 
template<typename List , template< typename... > class Target>
using vtkm::ListApply = typename detail::ListApplyImpl< internal::AsList< List >, Target >::type
 Applies the list of types to a template. More...
 
template<typename List >
using vtkm::ListSize = std::integral_constant< vtkm::IdComponent, vtkm::IdComponent{ brigand::size< internal::AsList< List > >::value }>
 Becomes an std::integral_constant containing the number of types in a list. More...
 
template<typename List , vtkm::IdComponent Index>
using vtkm::ListAt = brigand::at< internal::AsList< List >, std::integral_constant< vtkm::IdComponent, Index > >
 Finds the type at the given index. More...
 
template<typename List , typename T >
using vtkm::ListIndexOf = typename detail::ListIndexOfImpl< internal::AsList< List >, T >::type
 Finds the index of a given type. More...
 
template<typename List , typename T >
using vtkm::ListHas = typename detail::ListHasImpl< internal::AsList< List >, T >::type
 Checks to see if the given T is in the list pointed to by List. More...
 
template<typename... Lists>
using vtkm::ListAppend = brigand::append< internal::AsList< Lists >... >
 Concatinates a set of lists into a single list. More...
 
template<typename List1 , typename List2 >
using vtkm::ListIntersect = typename detail::ListIntersectImpl< internal::AsList< List1 >, internal::AsList< List2 > >::type
 Constructs a list containing types present in all lists. More...
 
template<typename List , template< typename > class Transform>
using vtkm::ListTransform = typename detail::ListTransformImpl< internal::AsList< List >, Transform >::type
 Constructs a list containing all types in a source list applied to a transform template. More...
 
template<typename List , template< typename > class Predicate>
using vtkm::ListRemoveIf = brigand::remove_if< internal::AsList< List >, brigand::bind< Predicate, brigand::_1 > >
 Takes an existing List and a predicate template that is applied to each type in the List. More...
 
template<typename List1 , typename List2 >
using vtkm::ListCross = typename detail::ListCrossImpl< internal::AsList< List1 >, internal::AsList< List2 > >::type
 Generates a list that is the cross product of two input lists. More...
 

Functions

template<typename Functor , typename List , typename... Args>
VTKM_EXEC_CONT void vtkm::ListForEach (Functor &&f, List, Args &&... args)
 For each typename represented by the list, call the functor with a default instance of that type. More...
 

Macro Definition Documentation

◆ VTKM_IS_LIST

#define VTKM_IS_LIST (   type)
Value:
VTKM_STATIC_ASSERT_MSG((::vtkm::internal::IsList<type>::value), \
"Provided type is not a valid VTK-m list type.")

Checks that the argument is a proper list.

This is a handy concept check for functions and classes to make sure that a template argument is actually a device adapter tag. (You can get weird errors elsewhere in the code when a mistake is made.)

VTKM_STATIC_ASSERT_MSG
#define VTKM_STATIC_ASSERT_MSG(condition, message)
Definition: StaticAssert.h:18