Boost logo

Boost Users :

From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2004-02-12 11:22:11


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


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