20240806; version 2.109: * Now operator=() supports the boolean values, true and false. * Modified operator=() so that a descendant or ancestor of *this can be copied to *this, such as: js["a"]("b")("c") = js["a"]; js["a"] = js["a"]["b"]["c"]; 20240804; version 2.108: * Added an overload function to num() whose return type can be specified by the template argument. * Fixed a bug that caused a compilation error since version 2.106 when assignment of a string is done with operator=(). * Fixed a bug that caused a compilation error since version 2.107 when type() is called. 20240804; version 2.107: * Improved the performance of parsing. 20240802; version 2.106: * Improved the performance of stringify() and to_string(). * Added an overload function to stringify() and to_string() whose return type can be specified by the template argument. * Modified so that parsing and stringifying can be done with a string type different from the string type of the ctl::json classes. * Added new types, wjson, u16json, which handle a string as UTF-16. 20240730; version 2.105: * Fixed a problem of u8json that caused a compilation error. * Moved the base class into an internal namespace. 20240728; version 2.104: * Reduced memory usage. 20240727; version 2.103: * Improved the parser to avoid unnecessary copying of data. * Restricted the unescaping operation to being performed in parse() only. * Changed the name of the member function raw() to set_str(). 20240721; version 2.102: * Fixed so that escape sequences would not be interpreted when outputting a JSON. 20240720; version 2.101: * Added the include guard that was accidentally missing. 20240616; version 2.100: * The first released version.