fwd.hpp 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // Copyright (c) 2019 Vinnie Falco ([email protected])
  3. // Copyright (c) 2022 Dmitry Arkhipov ([email protected])
  4. //
  5. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  6. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  7. //
  8. // Official repository: https://github.com/boostorg/json
  9. //
  10. #ifndef BOOST_JSON_FWD_HPP
  11. #define BOOST_JSON_FWD_HPP
  12. #include <boost/json/detail/config.hpp>
  13. namespace boost {
  14. namespace json {
  15. // Forward declarations
  16. #ifndef BOOST_JSON_DOCS
  17. class array;
  18. class object;
  19. class string;
  20. class value;
  21. class key_value_pair;
  22. class storage_ptr;
  23. struct value_from_tag;
  24. template<class T>
  25. struct value_to_tag;
  26. template<class T>
  27. struct try_value_to_tag;
  28. template<class T1, class T2>
  29. struct result_for;
  30. template<class T>
  31. struct is_string_like;
  32. template<class T>
  33. struct is_sequence_like;
  34. template<class T>
  35. struct is_map_like;
  36. template<class T>
  37. struct is_tuple_like;
  38. template<class T>
  39. struct is_null_like;
  40. template<class T>
  41. struct is_described_class;
  42. template<class T>
  43. struct is_described_enum;
  44. template<class T>
  45. void value_from( T&& t, value& jv );
  46. template<class T, class Context>
  47. void value_from( T&& t, value& jv, Context const& ctx );
  48. template<class T>
  49. T value_to( value const & v );
  50. template<class T, class Context>
  51. T value_to( value const & v, Context const& ctx );
  52. template<class T>
  53. typename result_for<T, value>::type
  54. try_value_to( value const & jv );
  55. template<class T, class Context>
  56. typename result_for<T, value>::type
  57. try_value_to( value const & jv, Context const& ctx );
  58. template<class T>
  59. typename result_for<T, value>::type
  60. result_from_errno( int e, boost::source_location const* loc ) noexcept;
  61. #endif
  62. } // namespace json
  63. } // namespace boost
  64. #endif