TLA Line data Source code
1 : //
2 : // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
3 : //
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)
6 : //
7 : // Official repository: https://github.com/boostorg/json
8 : //
9 :
10 : #ifndef BOOST_JSON_IMPL_VALUE_REF_HPP
11 : #define BOOST_JSON_IMPL_VALUE_REF_HPP
12 :
13 : #include <boost/json/value_from.hpp>
14 :
15 : namespace boost {
16 : namespace json {
17 :
18 : template<class T>
19 : value
20 HIT 8440 : value_ref::from_builtin(void const* p, storage_ptr sp) noexcept
21 : {
22 8440 : return value( *reinterpret_cast<T const*>(p), std::move(sp) );
23 : }
24 :
25 : template<class T>
26 : value
27 9 : value_ref::from_const(void const* p, storage_ptr sp)
28 : {
29 9 : return value_from( *reinterpret_cast<T const*>(p), std::move(sp) );
30 : }
31 :
32 : template<class T>
33 : value
34 66 : value_ref::from_rvalue(void* p, storage_ptr sp)
35 : {
36 66 : return value_from( std::move(*reinterpret_cast<T*>(p)), std::move(sp) );
37 : }
38 :
39 : } // namespace json
40 : } // namespace boost
41 :
42 : #endif
|