1 #ifndef CPPTL_JSON_FEATURES_H_INCLUDED 2 # define CPPTL_JSON_FEATURES_H_INCLUDED 3 4 # include "forwards.h" 5 6 namespace Json { 7 8 /** \brief Configuration passed to reader and writer. 9 * This configuration object can be used to force the Reader or Writer 10 * to behave in a standard conforming way. 11 */ 12 class JSON_API Features 13 { 14 public: 15 /** \brief A configuration that allows all features and assumes all strings are UTF-8. 16 * - C & C++ comments are allowed 17 * - Root object can be any JSON value 18 * - Assumes Value strings are encoded in UTF-8 19 */ 20 static Features all(); 21 22 /** \brief A configuration that is strictly compatible with the JSON specification. 23 * - Comments are forbidden. 24 * - Root object must be either an array or an object value. 25 * - Assumes Value strings are encoded in UTF-8 26 */ 27 static Features strictMode(); 28 29 /** \brief Initialize the configuration like JsonConfig::allFeatures; 30 */ 31 Features(); 32 33 /// \c true if comments are allowed. Default: \c true. 34 bool allowComments_; 35 36 /// \c true if root must be either an array or an object value. Default: \c false. 37 bool strictRoot_; 38 }; 39 40 } // namespace Json 41 42 #endif // CPPTL_JSON_FEATURES_H_INCLUDED 43