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) :
        (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;


Jeff F

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at