
On 2/22/06, Tobias Schwinger <tschwinger@neoscientists.org> 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