Blame view

3rdparty/boost_1_81_0/libs/json/test/natvis.cpp 3.01 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
  //
  // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
  //
  // 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)
  //
  // Official repository: https://github.com/boostorg/json
  //
  
  #include <boost/json/value.hpp>
  
  #include <boost/json/monotonic_resource.hpp>
  #include <boost/json/static_resource.hpp>
  
  #include "test_suite.hpp"
  
  BOOST_JSON_NS_BEGIN
  
  class natvis_test
  {
  public:
      static
      value
      make_key(string_view s)
      {
          value jv;
          detail::access::construct_value(
              &jv, s, storage_ptr());
          return jv;
      }
  
      void
      run()
      {
          // These variables may be inspected in the
          // Visual Studio IDE to verify that the .natvis
          // file is working correctly
  
          value jv0 = nullptr;
          value jv1 = true;
          value jv2 = -1;
          value jv3 = 42u;
          value jv4 = 3.141;
          value jv5 = "string";
          value jv6 = make_key("key");
          value jv7 = "dynamically-allocated-string";
          value jv8 = { 1, 2, 3 };
          value jv9 = { {"a",1}, {"b",2}, {"c",3} };
  
          string& x0 = jv5.get_string(); (void)x0;
          string& x1 = jv6.get_string(); (void)x1;
          string& x2 = jv7.get_string(); (void)x2;
          array&  x3 = jv8.get_array();  (void)x3;
          object& x4 = jv9.get_object(); (void)x4;
  
          array y0;
          y0.emplace_back(jv0);
          y0.emplace_back(jv1);
          y0.emplace_back(jv2);
          y0.emplace_back(jv4);
          y0.emplace_back(jv5);
          y0.emplace_back(jv6);
          y0.emplace_back(jv7);
          y0.emplace_back(jv8);
          y0.emplace_back(jv9);
  
          object y1;
          y1.emplace("a", jv0);
          y1.emplace("b", jv1);
          y1.emplace("c", jv2);
          y1.emplace("d", jv4);
          y1.emplace("f", jv5);
          y1.emplace("g", jv6);
          y1.emplace("h", jv7);
          y1.emplace("i", jv8);
          y1.emplace("j", jv9);
  
          key_value_pair& z0 = y1.begin()[0]; (void)z0;
          key_value_pair& z1 = y1.begin()[1]; (void)z1;
          key_value_pair& z2 = y1.begin()[2]; (void)z2;
          key_value_pair& z3 = y1.begin()[3]; (void)z3;
          key_value_pair& z4 = y1.begin()[4]; (void)z4;
          key_value_pair& z5 = y1.begin()[5]; (void)z5;
          key_value_pair& z6 = y1.begin()[6]; (void)z6;
          key_value_pair& z7 = y1.begin()[7]; (void)z7;
          key_value_pair& z8 = y1.begin()[8]; (void)z8;
  
          {
              auto sp = y1.storage();
          }
          {
              unsigned char buf[1024];
              storage_ptr sp;
              sp = make_shared_resource<
                  monotonic_resource>();
              sp = make_shared_resource<
                  static_resource>(buf);
              sp = {};
          }
          {
              unsigned char buf[1024];
              monotonic_resource mr1;
              static_resource mr2(buf);
              storage_ptr sp;
  
              sp = &mr1;
              sp = &mr2;
              sp = {};
          }
      }
  };
  
  TEST_SUITE(natvis_test, "json.natvis");
  
  BOOST_JSON_NS_END