Re: x3::variant vs boost::variant
Joel de Guzman <[email protected]>
| Newsgroups | gmane.comp.parsers.spirit.general |
|---|---|
| Message-ID | <[email protected]> |
On 2/18/16 4:48 AM, Baptiste Wicht wrote:
> The main problem that remains is with x3::variant and x3::forward_ast:
>
> I have a type like this:
>
> using Type = boost::spirit::x3::variant<
> SimpleType,
> boost::spirit::x3::forward_ast<ArrayType>,
> boost::spirit::x3::forward_ast<TemplateType>,
> boost::spirit::x3::forward_ast<PointerType>
> >;
>
> And a lot of code resembling this:
>
> if(auto* ptr = boost::get<ast::SimpleType>(&type)){
> //Do something on *ptr
> } else if(auto* ptr = boost::get<ast::ArrayType>(&type)){
> //Do something on *ptr
> } else if(auto* ptr = boost::get<ast::PointerType>(&type)){
> //...
> }
> //...
>
> But this does not work since ArrayType is not a member of the variant
> because of the forward_ast and I have an error from boost strict_get.
>
> I really have a lot of code like this, I won't be able (neither have the
> motivation for it) to change all of it. If there is no simple solution,
> I'll use my old AST with boost::variant and recursive_wrapper.
>
> Is there anything I can do to use boost::get with forward_ast ?
There should be a solution. tell you what. Give me a minimal test
case and I can work on getting it compile and run as expected.
Regards,
--
Joel de Guzman
http://www.ciere.com
http://boost-spirit.com
http://www.cycfi.com/
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140