Boost.Parameter 使得将参数作为键/值对传递成为可能。除了支持函数参数外,该库还支持模板参数。 Boost.Parameter 在您使用长参数列表并且参数的顺序和含义难以记住时特别有用。键/值对使得以任何顺序传递参数成为可能。因为每一个值都是通过一个键来传递的,所以各种值的含义也更加清晰。
示例 53.1。作为键/值对的函数参数
- #include <boost/parameter.hpp>
- #include <string>
- #include <iostream>
- #include <ios>
-
- BOOST_PARAMETER_NAME(a)
- BOOST_PARAMETER_NAME(b)
- BOOST_PARAMETER_NAME(c)
- BOOST_PARAMETER_NAME(d)
- BOOST_PARAMETER_NAME(e)
-
- BOOST_PARAMETER_FUNCTION(
- (void),
- complicated,
- tag,
- (required
- (a, (int))
- (b, (char))
- (c, (double))
- (d, (std::string))
- (e, *)
- )
- )
- {
- std::cout.setf(std::ios::boolalpha);
- std::cout << a << '\n';
- std::cout << b << '\n';
- std::cout << c << '\n';
- std::cout << d << '\n';
- std::cout << e << '\n';
- }
-
- int main()
- {
- complicated(_c = 3.14, _a = 1, _d = "Boost