From ccce29ecf5d77f533044bdb641073bb989de9fe3 Mon Sep 17 00:00:00 2001 From: Pavol Droba Date: Tue, 13 Jul 2004 14:20:06 +0000 Subject: [PATCH] Trying to avoid Intel crash [SVN r23484] --- include/boost/algorithm/string/iter_find.hpp | 25 +++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/include/boost/algorithm/string/iter_find.hpp b/include/boost/algorithm/string/iter_find.hpp index 0469f62..f7866a7 100644 --- a/include/boost/algorithm/string/iter_find.hpp +++ b/include/boost/algorithm/string/iter_find.hpp @@ -81,14 +81,20 @@ namespace boost { input_iterator_type InputEnd=end(Input); - SequenceSequenceT Tmp( + typedef transform_iterator + transform_iter_type; + + transform_iter_type itBegin= make_transform_iterator( find_iterator_type( begin(Input), InputEnd, Finder ), - copy_range_type() ), + copy_range_type()); + transform_iter_type itEnd= make_transform_iterator( find_iterator_type(), - copy_range_type() ) ); + copy_range_type()); + SequenceSequenceT Tmp(itBegin, itEnd); + Result.swap(Tmp); return Result; } @@ -141,14 +147,21 @@ namespace boost { input_iterator_type InputEnd=end(Input); - SequenceSequenceT Tmp( + typedef transform_iterator + transform_iter_type; + + transform_iter_type itBegin= make_transform_iterator( find_iterator_type( begin(Input), InputEnd, Finder ), - copy_range_type() ), + copy_range_type() ); + + transform_iter_type itEnd= make_transform_iterator( find_iterator_type(), - copy_range_type() ) ); + copy_range_type() ); + SequenceSequenceT Tmp(itBegin, itEnd); + Result.swap(Tmp); return Result; }