new unified json.hpp generated with make amalgamate
This commit is contained in:
		
							parent
							
								
									ef283e0cf8
								
							
						
					
					
						commit
						fa7f1a524e
					
				
					 1 changed files with 24 additions and 21 deletions
				
			
		|  | @ -55,7 +55,6 @@ SOFTWARE. | |||
| #include <memory> // allocator
 | ||||
| #include <string> // string
 | ||||
| #include <vector> // vector
 | ||||
| #include <cstdio> | ||||
| 
 | ||||
| /*!
 | ||||
| @brief namespace for Niels Lohmann | ||||
|  | @ -2059,6 +2058,7 @@ constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; | |||
| #include <string> // string, char_traits
 | ||||
| #include <type_traits> // enable_if, is_base_of, is_pointer, is_integral, remove_pointer
 | ||||
| #include <utility> // pair, declval
 | ||||
| #include <cstdio> //FILE *
 | ||||
| 
 | ||||
| // #include <nlohmann/detail/macro_scope.hpp>
 | ||||
| 
 | ||||
|  | @ -2095,6 +2095,27 @@ struct input_adapter_protocol | |||
| /// a type to simplify interfaces
 | ||||
| using input_adapter_t = std::shared_ptr<input_adapter_protocol>; | ||||
| 
 | ||||
| /*!
 | ||||
| Input adapter for stdio file access. This adapter read only 1 byte and do not use any | ||||
|  buffer. This adapter is a very low level adapter. This adapter | ||||
| */ | ||||
| class file_input_adapter : public input_adapter_protocol | ||||
| { | ||||
|   public: | ||||
|     explicit file_input_adapter(const FILE* file)  noexcept | ||||
|         : file(file) | ||||
|     {} | ||||
| 
 | ||||
|     std::char_traits<char>::int_type get_character() noexcept override | ||||
|     { | ||||
|         return fgetc(const_cast<FILE*>(file)); | ||||
|     } | ||||
|   private: | ||||
|     /// the file pointer to read from
 | ||||
|     const FILE* file; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| /*!
 | ||||
| Input adapter for a (caching) istream. Ignores a UFT Byte Order Mark at | ||||
| beginning of input. Does not support changing the underlying std::streambuf | ||||
|  | @ -2286,22 +2307,6 @@ struct wide_string_input_helper<WideStringType, 2> | |||
|     } | ||||
| }; | ||||
| 
 | ||||
| class file_input_adapter : public input_adapter_protocol | ||||
| { | ||||
| public: | ||||
|     explicit file_input_adapter(const FILE *file)  noexcept | ||||
|             : file(file) | ||||
|     {} | ||||
| 
 | ||||
|     std::char_traits<char>::int_type get_character() noexcept override | ||||
|     { | ||||
|         return fgetc(const_cast<FILE *>(file)); | ||||
|     } | ||||
| private: | ||||
|     /// the file pointer to read from
 | ||||
|     const FILE * file; | ||||
| }; | ||||
| 
 | ||||
| template<typename WideStringType> | ||||
| class wide_string_input_adapter : public input_adapter_protocol | ||||
| { | ||||
|  | @ -2353,7 +2358,8 @@ class input_adapter | |||
| { | ||||
|   public: | ||||
|     // native support
 | ||||
| 
 | ||||
|     input_adapter(FILE* file) | ||||
|         : ia(std::make_shared<file_input_adapter>(file)) {} | ||||
|     /// input adapter for input stream
 | ||||
|     input_adapter(std::istream& i) | ||||
|         : ia(std::make_shared<input_stream_adapter>(i)) {} | ||||
|  | @ -2371,9 +2377,6 @@ class input_adapter | |||
|     input_adapter(const std::u32string& ws) | ||||
|         : ia(std::make_shared<wide_string_input_adapter<std::u32string>>(ws)) {} | ||||
| 
 | ||||
|     input_adapter(const FILE *file) | ||||
|         : ia(std::make_shared<file_input_adapter>(file)) {} | ||||
| 
 | ||||
|     /// input adapter for buffer
 | ||||
|     template<typename CharT, | ||||
|              typename std::enable_if< | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue