Specilization of an empty TupleList. Required due to constructor selection.
More...
#include <openvdb/TypeList.h>
|
| | TupleList ()=default |
| |
| constexpr auto | size () |
| |
| TupleT & | tuple () |
| |
| const TupleT & | tuple () const |
| |
| template<size_t Idx> |
| constexpr auto & | get () |
| |
| template<size_t Idx> |
| constexpr auto & | get () const |
| |
| template<typename OpT> |
| constexpr void | foreach (OpT) |
| |
| template<class Pred, class OpT> |
| constexpr void | evalFirstPred (Pred, OpT) |
| |
| template<class Pred, class OpT, typename RetT> |
| constexpr RetT | evalFirstPred (Pred, OpT, RetT def) |
| |
| | TupleList ()=default |
| |
| | TupleList (Ts &&... args) |
| |
| constexpr auto | size () |
| |
| constexpr TupleT & | tuple () |
| |
| constexpr TupleT & | tuple () const |
| |
| constexpr auto & | get () |
| |
| constexpr auto & | get () const |
| |
| OPENVDB_FORCE_INLINE constexpr void | foreach (OpT op) |
| | Run a function on each type instance in the underlying std::tuple. Effectively calls op(std::get<I>(mTuple)) where I = [0,Size). Does not support returning a value.
|
| |
| OPENVDB_FORCE_INLINE void | evalFirstPred (Pred pred, OpT op) |
| | Run a function on the first element in the underlying std::tuple that satisfies the provided predicate. Effectively calls op(std::get<I>(mTuple)) when pred(I) returns true, then exits, where I = [0,Size). Does not support returning a value.
|
| |
| OPENVDB_FORCE_INLINE RetT | evalFirstPred (Pred pred, OpT op, RetT def) |
| | Run a function on the first element in the underlying std::tuple that satisfies the provided predicate. Effectively calls op(std::get<I>(mTuple)) when pred(I) returns true, then exits, where I = [0,Size). Supports returning a value, but a default return value must be provided.
|
| |
Specilization of an empty TupleList. Required due to constructor selection.
◆ AsTypeList [1/2]
◆ AsTypeList [2/2]
◆ TupleT [1/2]
◆ TupleT [2/2]
◆ TupleList() [1/3]
◆ TupleList() [2/3]
◆ TupleList() [3/3]
◆ evalFirstPred() [1/4]
Run a function on the first element in the underlying std::tuple that satisfies the provided predicate. Effectively calls op(std::get<I>(mTuple)) when pred(I) returns true, then exits, where I = [0,Size). Does not support returning a value.
- Note
- This is mainly useful to avoid the overhead of calling std::get on every element when only a single unknown element needs processing.
- Parameters
-
| pred | Predicate to run on each index, should return true/false |
| op | Function to run on the first element that satisfies pred |
Example:
{
}
{
Types::AsTupleList
tuple(
Int32(1),
float(3.3), std::string(
"foo"));
bool runtimeFlags[
tuple.size()] = { .... }
[&](auto Idx) { return runtimeFlags[Idx]; },
[](auto value) { std::cout << value << std::endl; }
);
}
int32_t Int32
Definition Types.h:56
TupleT & tuple()
Definition TypeList.h:963
A list of types (not necessarily unique)
Definition TypeList.h:578
◆ evalFirstPred() [2/4]
Run a function on the first element in the underlying std::tuple that satisfies the provided predicate. Effectively calls op(std::get<I>(mTuple)) when pred(I) returns true, then exits, where I = [0,Size). Supports returning a value, but a default return value must be provided.
- Parameters
-
| pred | Predicate to run on each index, should return true/false |
| op | Function to run on the first element that satisfies pred |
| def | Default return value |
Example:
{
}
{
Types::AsTupleList
tuple(
Int32(1),
float(3.3), std::string(
"foo"));
[](auto Idx) { return std::is_same<std::string, Types::template Get<Idx>>::value; },
[](auto value) { return value.size(); },
-1
);
}
constexpr auto size()
Definition TypeList.h:962
◆ evalFirstPred() [3/4]
template<class Pred, class OpT>
| void evalFirstPred |
( |
Pred | , |
|
|
OpT | ) |
|
inlineconstexpr |
◆ evalFirstPred() [4/4]
template<class Pred, class OpT, typename RetT>
| RetT evalFirstPred |
( |
Pred | , |
|
|
OpT | , |
|
|
RetT | def ) |
|
inlineconstexpr |
◆ foreach() [1/2]
Run a function on each type instance in the underlying std::tuple. Effectively calls op(std::get<I>(mTuple)) where I = [0,Size). Does not support returning a value.
- Parameters
-
| op | Function to run on each type |
Example:
{
}
{
Types::AsTupleList
tuple(
Int32(1),
float(3.3), std::string(
"foo"));
tuple.foreach([](
auto value) { std::cout << value <<
' '; });
}
◆ foreach() [2/2]
◆ get() [1/4]
◆ get() [2/4]
◆ get() [3/4]
◆ get() [4/4]
◆ size() [1/2]
◆ size() [2/2]
◆ tuple() [1/4]
◆ tuple() [2/4]
◆ tuple() [3/4]
◆ tuple() [4/4]
| const TupleT & tuple |
( |
| ) |
const |
|
inline |