Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2008-07-08 20:12:53


on Tue Jul 08 2008, "Brian Simpson" <wheber-AT-hotmail.com> wrote:

> I've got some code that makes heavy use of mpl. I developed and
> successfully testid it with msvc8.0 .
>
> Then I #included it in a WinForms app (meaning that the compiler is now
> running with one of the /clr options). The compiler stops with an error
> explaining that it has "run out of stack space".
> This could be simply a difference in compiler implementations, but I thought
> I remembered that mpl was implemented with some builtin recursion unrolling
> classes to mitigate deeply recursive typedef issues. If so, it occurred to
> me that maybe the macros mpl is depending on to trigger the level of
> recursion unrolling aren't supplied when msvc is compiling for CLI. I've
> perused the code a bit to try to find where it is setting such a thing, but
> haven't been successful. So I thought I'd post here in hopes of a quick
> answer.
>
> Does mpl implement such a thing?

It does

> And if so, where is it?

look in mpl/aux_/preprocessed/plain/iter_fold_impl.hpp for example.
It's actually possible to limit the depth much further when there's an
O(1) size because you can recursively divide the sequence in half. MPL
doesn't implement that AFAIK, though.

> I'd like to see if it isn't getting used for cli compilation.

I don't think there's any special checking for CLI, sorry.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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