Could you please redo your diffs in unified format (diff -u on *NIX) and send them to the list again?
Regards, Ravi
I only added some attribute so that all the functions called by for_each are inlined.
My changes work only with g++.
Other compiler use other attributes to force inlining.
Peter
-wru /users/pfoelsch/boost_1_35_0.saved/boost_1_35_0/boost/mpl/for_each.hpp ./mpl/for_each.hpp
--- /users/pfoelsch/boost_1_35_0.saved/boost_1_35_0/boost/mpl/for_each.hpp 2004-09-03 18:33:47.000000000 -0700
+++ ./mpl/for_each.hpp 2008-10-03 13:35:07.649710000 -0700
@@ -38,7 +38,8 @@
, typename TransformFunc
, typename F
>
- static void execute(
+__attribute__ ((__always_inline__))
+ inline static void execute(
Iterator*
, LastIterator*
, TransformFunc*
@@ -57,7 +58,8 @@
, typename TransformFunc
, typename F
>
- static void execute(
+__attribute__ ((__always_inline__))
+ inline static void execute(
Iterator*
, LastIterator*
, TransformFunc*
@@ -69,8 +71,8 @@
// dwa 2002/9/10 -- make sure not to invoke undefined behavior
// when we pass arg.
- value_initialized<arg> x;
- aux::unwrap(f, 0)(boost::get(x));
+ //value_initialized<arg> x;
+ aux::unwrap(f, 0)(arg());
typedef typename mpl::next<Iterator>::type iter;
for_each_impl