1  
//
1  
//
2  
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
2  
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
3  
//
3  
//
4  
// Distributed under the Boost Software License, Version 1.0. (See accompanying
4  
// Distributed under the Boost Software License, Version 1.0. (See accompanying
5  
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5  
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6  
//
6  
//
7  
// Official repository: https://github.com/boostorg/json
7  
// Official repository: https://github.com/boostorg/json
8  
//
8  
//
9  

9  

10  
#ifndef BOOST_JSON_IMPL_VALUE_REF_HPP
10  
#ifndef BOOST_JSON_IMPL_VALUE_REF_HPP
11  
#define BOOST_JSON_IMPL_VALUE_REF_HPP
11  
#define BOOST_JSON_IMPL_VALUE_REF_HPP
12 -
#include <boost/json/value_from.hpp>
 
13 -

 
14  

12  

15  
namespace boost {
13  
namespace boost {
16  
namespace json {
14  
namespace json {
17  

15  

18  
template<class T>
16  
template<class T>
19  
value
17  
value
20 -
value_ref::from_builtin(void const* p, storage_ptr sp) noexcept
18 +
value_ref::
 
19 +
from_builtin(
 
20 +
    void const* p,
 
21 +
    storage_ptr sp) noexcept
21  
{
22  
{
22 -
    return value( *reinterpret_cast<T const*>(p), std::move(sp) );
23 +
    return value(
 
24 +
        *reinterpret_cast<
 
25 +
            T const*>(p),
 
26 +
        std::move(sp));
23  
}
27  
}
24  

28  

25  
template<class T>
29  
template<class T>
26  
value
30  
value
27 -
value_ref::from_const(void const* p, storage_ptr sp)
31 +
value_ref::
 
32 +
from_const(
 
33 +
    void const* p,
 
34 +
    storage_ptr sp)
28  
{
35  
{
29 -
    return value_from( *reinterpret_cast<T const*>(p), std::move(sp) );
36 +
    return value(
 
37 +
        *reinterpret_cast<
 
38 +
            T const*>(p),
 
39 +
        std::move(sp));
30  
}
40  
}
31  

41  

32  
template<class T>
42  
template<class T>
33  
value
43  
value
34 -
value_ref::from_rvalue(void* p, storage_ptr sp)
44 +
value_ref::
 
45 +
from_rvalue(
 
46 +
    void* p,
 
47 +
    storage_ptr sp)
35  
{
48  
{
36 -
    return value_from( std::move(*reinterpret_cast<T*>(p)), std::move(sp) );
49 +
    return value(
 
50 +
        std::move(
 
51 +
            *reinterpret_cast<T*>(p)),
 
52 +
        std::move(sp));
37  
}
53  
}
38  

54  

39  
} // namespace json
55  
} // namespace json
40  
} // namespace boost
56  
} // namespace boost
41  

57  

42  
#endif
58  
#endif