]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/parameter/test/literate/building-argumentpacks0.cpp
2 #include <boost/parameter.hpp>
4 BOOST_PARAMETER_NAME(index
)
6 template <class ArgumentPack
>
7 int print_index(ArgumentPack
const& args
)
9 std::cout
<< "index = " << args
[_index
] << std::endl
;
13 int x
= print_index(_index
= 3); // prints "index = 3"
15 BOOST_PARAMETER_NAME(name
)
17 template <class ArgumentPack
>
18 int print_name_and_index(ArgumentPack
const& args
)
20 std::cout
<< "name = " << args
[_name
] << "; ";
21 return print_index(args
);
24 int y
= print_name_and_index((_index
= 3, _name
= "jones"));
27 namespace parameter
= boost::parameter
;
28 using parameter::required
;
29 using parameter::optional
;
30 using boost::is_convertible
;
32 parameter::parameters
<
33 required
<tag::name
, is_convertible
<_
,char const*> >
34 , optional
<tag::index
, is_convertible
<_
,int> >
37 char const sam
[] = "sam";
40 int z0
= print_name_and_index( spec(sam
, twelve
) );
42 int z1
= print_name_and_index(
43 spec(_index
=12, _name
="sam")