Classes | |
| struct | tag::T_list< C, D > |
| struct | tag::V_list< C, D > |
| struct | tag::V_tuple< A, B, C, > |
Defines | |
| #define | make_tuple() ((tag::TupleHead, ## __VA_ARGS__)) |
| #define | make_vtuple() ((tag::V_TupleHead, ## __VA_ARGS__)) |
| #define | make_rtuple() ((tag::R_TupleHead, ## __VA_ARGS__)) |
Typedefs | |
| typedef T_list< Internal::null, Internal::null > | tag::T_ListEnd |
Variables | |
| const T_ListEnd | tag::TupleHead = T_ListEnd(Internal::null(), Internal::null()) |
There are two types:
const& mebers.
V_list is designed primarily to allow multiple return values from functions (see also tag::rpair) and can be uses as follows:
V_tuple<int, float, char>::type func()
{
int i;
float f;
char c;
//Function body goes here
return make_vtuple(i, f, c);
}
void foo()
{
int a;
float b;
char c;
//Call func() and collect all return values
make_rtuple(a,b,c) = func();
//a,b,c are now set.
}
|
|
This macro is used to collect multiple return values from a function. |
|
|
This is a variadic ``function'' which creates and returns a tuple. |
|
|
This macro is used to return multiple values from a function. |
|
|
Guard type to mark the end of the list |
|
|
The value of the end of a list |
1.3.9.1