|
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.