🚧 trying nodiscard attribute #1433
This commit is contained in:
		
							parent
							
								
									b9a39b38bf
								
							
						
					
					
						commit
						d359fd3a8d
					
				
					 7 changed files with 49 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -152,6 +152,15 @@ using json = basic_json<>;
 | 
			
		|||
    #define JSON_DEPRECATED
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// allow for portable nodiscard warnings
 | 
			
		||||
#if defined(__has_cpp_attribute) && __has_cpp_attribute(nodiscard)
 | 
			
		||||
    #define JSON_NODISCARD [[nodiscard]]
 | 
			
		||||
#elif defined(__has_cpp_attribute) && __has_cpp_attribute(gnu::warn_unused_result)
 | 
			
		||||
    #define JSON_NODISCARD [[gnu::warn_unused_result]]
 | 
			
		||||
#else
 | 
			
		||||
    #define JSON_NODISCARD
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// allow to disable exceptions
 | 
			
		||||
#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION)
 | 
			
		||||
    #define JSON_THROW(exception) throw exception
 | 
			
		||||
| 
						 | 
				
			
			@ -12793,6 +12802,7 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @since 2.1.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json meta()
 | 
			
		||||
    {
 | 
			
		||||
        basic_json result;
 | 
			
		||||
| 
						 | 
				
			
			@ -13965,6 +13975,7 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @since version 1.0.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json array(initializer_list_t init = {})
 | 
			
		||||
    {
 | 
			
		||||
        return basic_json(init, false, value_t::array);
 | 
			
		||||
| 
						 | 
				
			
			@ -14008,6 +14019,7 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @since version 1.0.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json object(initializer_list_t init = {})
 | 
			
		||||
    {
 | 
			
		||||
        return basic_json(init, false, value_t::object);
 | 
			
		||||
| 
						 | 
				
			
			@ -18527,6 +18539,7 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @since version 2.0.3 (contiguous containers)
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json parse(detail::input_adapter&& i,
 | 
			
		||||
                            const parser_callback_t cb = nullptr,
 | 
			
		||||
                            const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19302,6 +19315,7 @@ class basic_json
 | 
			
		|||
           @a strict parameter since 3.0.0; added @a allow_exceptions parameter
 | 
			
		||||
           since 3.2.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_cbor(detail::input_adapter&& i,
 | 
			
		||||
                                const bool strict = true,
 | 
			
		||||
                                const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19317,6 +19331,7 @@ class basic_json
 | 
			
		|||
    */
 | 
			
		||||
    template<typename A1, typename A2,
 | 
			
		||||
             detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0>
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_cbor(A1 && a1, A2 && a2,
 | 
			
		||||
                                const bool strict = true,
 | 
			
		||||
                                const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19409,6 +19424,7 @@ class basic_json
 | 
			
		|||
           @a strict parameter since 3.0.0; added @a allow_exceptions parameter
 | 
			
		||||
           since 3.2.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_msgpack(detail::input_adapter&& i,
 | 
			
		||||
                                   const bool strict = true,
 | 
			
		||||
                                   const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19424,6 +19440,7 @@ class basic_json
 | 
			
		|||
    */
 | 
			
		||||
    template<typename A1, typename A2,
 | 
			
		||||
             detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0>
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_msgpack(A1 && a1, A2 && a2,
 | 
			
		||||
                                   const bool strict = true,
 | 
			
		||||
                                   const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19495,6 +19512,7 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @since version 3.1.0; added @a allow_exceptions parameter since 3.2.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_ubjson(detail::input_adapter&& i,
 | 
			
		||||
                                  const bool strict = true,
 | 
			
		||||
                                  const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19510,6 +19528,7 @@ class basic_json
 | 
			
		|||
    */
 | 
			
		||||
    template<typename A1, typename A2,
 | 
			
		||||
             detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0>
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_ubjson(A1 && a1, A2 && a2,
 | 
			
		||||
                                  const bool strict = true,
 | 
			
		||||
                                  const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19580,6 +19599,7 @@ class basic_json
 | 
			
		|||
    @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the
 | 
			
		||||
        related UBJSON format
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_bson(detail::input_adapter&& i,
 | 
			
		||||
                                const bool strict = true,
 | 
			
		||||
                                const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -19595,6 +19615,7 @@ class basic_json
 | 
			
		|||
    */
 | 
			
		||||
    template<typename A1, typename A2,
 | 
			
		||||
             detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0>
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json from_bson(A1 && a1, A2 && a2,
 | 
			
		||||
                                const bool strict = true,
 | 
			
		||||
                                const bool allow_exceptions = true)
 | 
			
		||||
| 
						 | 
				
			
			@ -20186,6 +20207,7 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @since version 2.0.0
 | 
			
		||||
    */
 | 
			
		||||
    JSON_NODISCARD
 | 
			
		||||
    static basic_json diff(const basic_json& source, const basic_json& target,
 | 
			
		||||
                           const std::string& path = "")
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -20505,6 +20527,7 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
 | 
			
		|||
#undef JSON_LIKELY
 | 
			
		||||
#undef JSON_UNLIKELY
 | 
			
		||||
#undef JSON_DEPRECATED
 | 
			
		||||
#undef JSON_NODISCARD
 | 
			
		||||
#undef JSON_HAS_CPP_14
 | 
			
		||||
#undef JSON_HAS_CPP_17
 | 
			
		||||
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue