I've tried your code and it gives me this internal compiler error: [...] But this code gives me another compiler error (the one I have posted in my threads) and compiler crash: [...]
I think the bottom line is -- sizeof() is broken with regards to default parameters (possibly in more then one way). As I might have mentioned before any ICE is just a fancy way of saying "compiler bug", let alone compiler crash. As I said, Boost.Typeof is implemented through sizeof(), so all the sizeof() problems unfortunately show up in typeof, and it seems to be no way around it inside the library. We've seen some of those in different compilers and in different contexts. You just discovered one more place where it's broken. The only workaround I can see for you is to pass the default parameter explicitely. Annoying, but I don't see any other way :(
Should I also open the bug for VS 8?
Yes, absolutely, unless it's already a known issue. Regards, Arkadiy