[forward] looking for help to keep MSVC7.1 from ICEing

Hello, I'm trying to make Forward release-ready and I'd really like to support MSVC 7.1 which is currently ICEing (in msc1.cpp, line 2701). According to online research that ICE typically occurs when the ODR is violated and the compiler fails to diagnose it. Although the code should be valid, it's likely to be about name management. The code uses an inheritance chain to add call operators of different arities. IOW the class template for arity N inherits from the class template for arity N-1. A 'using base::operator();' is used to pull in the base class' overloads. A stripped-down version of this pattern compiles. When I take out the 'using' declaration the ICE disappears (and so do the base class' overloads). Ideas anyone? Anyone keen enough to look into it? In case of the latter, I recommend the simpler of the two headers: trunk/boost/functional/lightweight_forward_adapter.hpp [ link to svn: http://tinyurl.com/ydoyoa4 ] Thanks, Tobias
participants (1)
-
Tobias Schwinger