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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.