|
Boost Users : |
Subject: Re: [Boost-users] Possible Boost.Variant issue with JSON AST
From: Larry Evans (cppljevans_at_[hidden])
Date: 2019-01-11 02:42:55
On 1/10/19 5:36 PM, Michael Powell via Boost-users wrote:
> On Thu, Jan 10, 2019 at 6:15 PM Gavin Lambert via Boost-users
> <boost-users_at_[hidden]> wrote:
>>
>> On 11/01/2019 07:36, Michael Powell wrote:
>>> Here's my attempt at a flattened single source example:
>>>
>>> https://wandbox.org/permlink/83c3VXZ4W1DHoEBc
>>
>> The problems in that code are that you're using completely the wrong types.
>
> Fair observations. I've updated a bit, which I think is now tracking
> with my local progress. Chiefly now, issues with "incompatible
> skipper"?
>
> https://wandbox.org/permlink/4spQR8yXweIcVfdB
>
> Perhaps a repeated tuple issue of some sort? Otherwise, I'm not sure I
> see what's going on there...
>
> I'd also tried forward declared structs to capture Member, Object,
> Array, etc, but this was running into Boost.Variant incomplete type
> issues.
>
Try altering what's forward declared:
struct member_t;
using members_t = std::vector<member_t>;
// JSON_PARSER_OBJECT_HPP
struct object_t {
members_t members;
object_t();
object_t(const object_t& other);
virtual ~object_t();
};
struct value_t
: boost::variant
< null_t, boolean_t, str_t
, floating_point_number_t
, integer_number_t, object_t, array_t
>
{...};
That way, since sizeof(vector<anything>) is known, sizeof(object_t) is
known.
HTH.
-regards,
Larry
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net