Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2004-02-12 17:04:21


Jason Shirk of Microsoft says:

This is a likely known issue in VC7.1, I'll have our team double check
to make sure. IIRC, the only simple workaround is to not use /Gm.

If it is the same issue, it has been fixed for the next release.

--
Jason Shirk
VC++ Compiler Team
----------
"Jeff Flinn" <TriumphSprint2000_at_[hidden]> writes:
> I've begun converting my projects to using the new iterator_adaptor's. I've
> encountered an ICE with the code below. I've tried to isolate it to a simple
> console app but of course, the problem does not occur there. The following
> distillation does ICE, when compiled with the /Gm (Enable Minimal Rebuild)
> flag, but compiles and runs fine w/out it.  This is an MFC multithreaded lib
> project NOT using precompiled headers. I'll continue to try to isolate the
> conditions.Any thoughts on how to isolate the problem?
>
> VC7.1 error message:
>
> C:\boost\boost_1_31_0\boost\mpl\aux_\preprocessed\plain\apply.hpp(50) :
> fatal error C1001: INTERNAL COMPILER ERROR
>         (compiler file 'msc1.cpp', line 2701)
>
>
> #include <string>
> #include <algorithm>
> #include <vector>
> #include <numeric>
> #include <boost/bind.hpp>
> #include <boost/function.hpp>
> #include <boost/iterator/transform_iterator.hpp>
>
> typedef std::pair<int,int> CSize;
>
> CSize SizeFromString( const std::string& aString           ){ return
> CSize(1,2); }
> CSize XUnionStacked ( const CSize& aSz1, const CSize& aSz2 ){ return
> CSize(1,2); }
>
> CSize XSizeMultiLine( const std::string& aString, const CSize& aSize )
> {
>    CSize lSize(0,0);
>
>    boost::function1<CSize,const std::string& > lSizeFromStringFnc   =
>         boost::bind( SizeFromString, _1     );
>    boost::function2<CSize,const CSize&,const CSize& > lSizeUnionStackedFnc =
>         boost::bind(  XUnionStacked, _1, _2 );
>
>    std::vector<std::string> lStrings(10);
>
>    lSize = std::accumulate
>    ( boost::make_transform_iterator( lStrings.begin(), lSizeFromStringFnc )
>    , boost::make_transform_iterator( lStrings.  end(), lSizeFromStringFnc )
>    , lSize
>    , lSizeUnionStackedFnc
>    );
>
>    return lSize;
> }
>
> Thanks,
>
> Jeff F
-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.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