type reference

This commit is contained in:
Niels 2014-12-29 17:07:00 +01:00
parent a8c4f84fb8
commit cff4d40afd

View file

@ -19,3 +19,17 @@ There are only a few type conversions possible:
- A floating pointnnumber can be translated to an integer number (e.g., by calling `get<int>()`). Note the number is truncated and not rounded, ceiled or floored. - A floating pointnnumber can be translated to an integer number (e.g., by calling `get<int>()`). Note the number is truncated and not rounded, ceiled or floored.
- Any value but JSON objects can be translated into an array. The result is a singleton array that consists of the value before. - Any value but JSON objects can be translated into an array. The result is a singleton array that consists of the value before.
- Any other conversion will throw a `std::logic_error` exception. - Any other conversion will throw a `std::logic_error` exception.
## Initialization
JSON values can be created from many literals and variable types:
| JSON type | literal/variable types |
| --------- | ---------------------- |
| none | `nullptr` literal, `nullptr_t` type, no value |
| string | string literal, `char*` type, `std::string` type, `std::string&&` rvalue reference, `JSON::string_t` type |
| number (integer) | integer literal, `int` type, `JSON_number_t` type |
| number (floating point) | floating point literal, `double` type, `JSON::number_float_t` type |
| array | initializer list whose elements are `JSON` values (or can be translated into `JSON` values using the rules above), `std::vector<JSON>` type, `JSON::array_t` type |
| object | initializer list whose elements are pairs of a string literal and a `JSON` value (or can be translated into `JSON` values using the rules above), `std::map<std::string, JSON>` type, `JSON::object_t` type |