Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | blender::TypeForValue< T, Element > |
struct | blender::ValueSequence< T, Elements > |
struct | blender::TypeSequence< T > |
Namespaces | |
blender | |
blender::detail | |
blender::parameter_pack_utils_static_tests | |
Typedefs | |
template<typename T , T Value, size_t Size> | |
using | blender::make_value_sequence = decltype(detail::make_value_sequence_impl< T, Value >(std::make_index_sequence< Size >())) |
template<typename T , T Value1, T Value2, size_t Size, size_t... Value1Indices> | |
using | blender::make_two_value_sequence = decltype(detail::make_two_value_sequence_impl< T, Value1, Value2 >(ValueSequence< size_t, Value1Indices... >(), std::make_index_sequence< Size >())) |
Enumerations | |
enum class | blender::parameter_pack_utils_static_tests::MyEnum { blender::parameter_pack_utils_static_tests::A , blender::parameter_pack_utils_static_tests::B } |
Variables | |
template<typename T , T Value, size_t... I> | |
ValueSequence< T,((I==0) ? Value :Value)... > | blender::detail::make_value_sequence_impl (std::index_sequence< I... >) |
template<typename T , T Value1, T Value2, size_t... Value1Indices, size_t... I> | |
ValueSequence< T,(ValueSequence< size_t, Value1Indices... >::template contains< I >) ? Value1 :Value2)... > | blender::detail::make_two_value_sequence_impl (ValueSequence< size_t, Value1Indices... >, std::index_sequence< I... >) |
C++ has a feature called "parameter packs" which allow building variadic templates. This file has some utilities to work with such parameter packs.
Definition in file BLI_parameter_pack_utils.hh.