$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
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