Boost logo

Boost :

From: Maximilian Riemensberger (riemaxi_at_[hidden])
Date: 2020-09-25 14:16:54


On 9/25/20 4:06 PM, Andrzej Krzemienski via Boost wrote:
> pt., 25 wrz 2020 o 15:10 Zach Laine via Boost <boost_at_[hidden]>
> napisał(a):
>
>> On Fri, Sep 25, 2020 at 6:11 AM Mathias Gaunard via Boost
>> <boost_at_[hidden]> wrote:
>>>
>>> On Thu, 24 Sep 2020 at 10:57, Andrzej Krzemienski via Boost
>>> <boost_at_[hidden]> wrote:
>>>
>>>> My understanding of a "vocabulary type" is that it should be usable
>> (not
>>>> necessarily with maximum efficiency) for *any* usage. In the case of
>> JSON
>>>> that would mean that I should be able to represent any value that
>>>> corresponds to a valid JSON when converted to text. I do not think that
>>>> json::value can claim that without the ability to serialize
>> arbitrarily big
>>>> numbers.
>>>
>>> I fully agree with this statement.
>>> json::value *needs* to support arbitrary numbers. It's incomplete
>> without it.
>>> Maybe the author of multiprecision can advise on the best type to use
>>> there (gmp or mpfr?).
>>
>> This is not a reasonable requirement. std::string is the canonical
>> C++ vocabulary type. On 32-bit systems, it cannot represent 5GB-long
>> strings. Depending on platform limitations, it usually cannot even
>> represent more than 2GB-long strings. Computers are limited to finite
>> resources. Putting finite limits on the representation of all kinds
>> of values is normal, not unexpected -- this is especially true of
>> numeric values.
>>
>
> I am wondering. If I have a small web service for generating prime numbers,
> and I need to return them in a JSON file, is my only option to pass it as
> string?
> Prime numbers of this kind are bigger than uint64_t. But they are not as
> big as 1MB. Is such a use case for a number so unusual that it cannot be
> stored as a JSON number?

If you have to interoperate with Javascript at some point, then I think the
answer is yes, use a string. JS only knows about double (not even int64 or
uint64).

> Are JSON numbers only good for storing int-based identifiers?
>
> Regards,
> &rzej;
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk