Blame view

3rdparty/boost_1_81_0/libs/parameter/test/macros.cpp 1.5 KB
73ef4ff3   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
  // Copyright David Abrahams, Daniel Wallin 2003.
  // Distributed under the Boost Software License, Version 1.0.
  // (See accompanying file LICENSE_1_0.txt or copy at
  // http://www.boost.org/LICENSE_1_0.txt)
  
  #include <boost/parameter.hpp>
  #include <boost/parameter/macros.hpp>
  #include <boost/bind/bind.hpp>
  #include "basics.hpp"
  
  namespace test {
  
      BOOST_PARAMETER_FUN(int, f, 2, 4, f_parameters)
      {
          p[test::_tester](
              p[test::_name]
            , p[test::_value || boost::bind(&test::value_default)]
            , p[test::_index | 999]
          );
  
          return 1;
      }
  
      BOOST_PARAMETER_NAME(foo)
      BOOST_PARAMETER_NAME(bar)
  
      struct baz_parameters
        : boost::parameter::parameters<
              boost::parameter::optional<test::tag::foo>
            , boost::parameter::optional<test::tag::bar>
          >
      {
      };
  
      BOOST_PARAMETER_FUN(int, baz, 0, 2, baz_parameters)
      {
          return 1;
      }
  } // namespace test
  
  #include <boost/core/ref.hpp>
  #include <boost/core/lightweight_test.hpp>
  #include <string>
  
  int main()
  {
      test::f(
          test::values(
              std::string("foo")
            , std::string("bar")
            , std::string("baz")
          )
        , std::string("foo")
        , std::string("bar")
        , std::string("baz")
      );
      BOOST_TEST_EQ(1, test::baz());
  
      int x = 56;
      test::f(
          test::values(std::string("foo"), 666.222, 56)
        , test::_index = boost::ref(x)
        , test::_name = std::string("foo")
      );
  
      return boost::report_errors();
  }