Boost logo

Boost :

From: Peder Holt (peder.holt_at_[hidden])
Date: 2006-02-22 14:01:04


On 2/22/06, Tobias Schwinger <tschwinger_at_[hidden]> wrote:
> Arkadiy Vertleyb wrote:
> >
> > I would like to take a look at them (not that I am expecting to be able to
> > fix ICEs, though).
> >
> > Are these ICEs related to types used or to any
> > particular context the typeof is used from?
> >
>
> The opaque_rule_parser example (only uses non-templated typeof) works.
>
> The rule_parser_1_1 example makes VC7.1 ICE in the first, very simple rule (it uses non-templated typeof).

This is not a problem in BOOST_TYPEOF.
The following code replicates the ICE under VC7.1:

#include <boost/spirit/core.hpp>
#include <boost/spirit/utility/confix.hpp>

using namespace boost::spirit;
template<typename T>
void test(const T&) {}

int main()
{
  test(
      confix_p("//",*anychar_p,eol_p) |
      confix_p("/*",*anychar_p,"*/") |
      space_p
  );
  return 0;
}

Regards,
Peder

>
> The rule_parser_1_2 example, which uses some really tricky stuff (and both templated and non-templated typeof), works fine.
>
> The rule_parser_2_1 example works too (it requires native mode to compile because LIMIT_SIZE == 100 is beyond the limit).
>
> The rule_parser_2_2 fails in the third rule (maybe because of the self-reference or maybe just for the same obscure reasons rule_parser_1_1 does).
>
> For the examples that ICE it does not matter whether BOOST_TYPEOF_EMULATION is defined or not.
>
>
> Regards,
>
> Tobias
>
> _______________________________________________
> 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