| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | /*Copyright 2019 Glen Joseph Fernandes(glenjofe@gmail.com)Distributed under the Boost Software License, Version 1.0.(http://www.boost.org/LICENSE_1_0.txt)*/#ifndef BOOST_CORE_NVP_HPP#define BOOST_CORE_NVP_HPP#include <boost/core/addressof.hpp>#include <boost/config.hpp>namespace boost {namespace serialization {template<class T>class nvp {public:    nvp(const char* n, T& v) BOOST_NOEXCEPT        : n_(n)        , v_(boost::addressof(v)) { }    const char* name() const BOOST_NOEXCEPT {        return n_;    }    T& value() const BOOST_NOEXCEPT {        return *v_;    }    const T& const_value() const BOOST_NOEXCEPT {        return *v_;    }private:    const char* n_;    T* v_;};template<class T>inline const nvp<T>make_nvp(const char* n, T& v) BOOST_NOEXCEPT{    return nvp<T>(n, v);}} /* serialization */using serialization::nvp;using serialization::make_nvp;} /* boost */#define BOOST_NVP(v) boost::make_nvp(BOOST_STRINGIZE(v), v)#endif
 |