Index: boost/numeric/ublas/detail/matrix_assign.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/numeric/ublas/detail/matrix_assign.hpp,v
retrieving revision 1.6
diff -u -p -r1.6 matrix_assign.hpp
--- boost/numeric/ublas/detail/matrix_assign.hpp	13 Feb 2005 16:21:39 -0000	1.6
+++ boost/numeric/ublas/detail/matrix_assign.hpp	22 Feb 2005 12:27:09 -0000
@@ -681,7 +681,8 @@ namespace detail {
 #endif
                         difference_type size2 (it2_end - it2);
                         while (-- size2 >= 0)
-                            functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+//                            functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+                            functor_type::apply (*it2, typename functor_type::argument2_type(0)), ++ it2;
                         ++ it1;
                     }
                 } else {
@@ -721,7 +722,8 @@ namespace detail {
                     it2_size -= size2;
                     if (!functor_type::computed) {
                         while (-- size2 >= 0)   // zeroing
-                            functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+//                            functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+                            functor_type::apply (*it2, typename functor_type::argument2_type(0)), ++ it2;
                     } else {
                         it2 += size2;
                     }
@@ -736,7 +738,8 @@ namespace detail {
             size2 = it2_size;
             if (!functor_type::computed) {
                 while (-- size2 >= 0)   // zeroing
-                    functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+//                    functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+                    functor_type::apply (*it2, typename functor_type::argument2_type(0)), ++ it2;
             } else {
                 it2 += size2;
             }
@@ -754,7 +757,8 @@ namespace detail {
 #endif
                 difference_type size2 (it2_end - it2);
                 while (-- size2 >= 0)
-                    functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+//                    functor_type::apply (*it2, value_type/*zero*/()), ++ it2;
+                    functor_type::apply (*it2, typename functor_type::argument2_type(0)), ++ it2;
                 ++ it1;
             }
         } else {
@@ -810,7 +814,8 @@ namespace detail {
 #endif
                         difference_type size1 (it1_end - it1);
                         while (-- size1 >= 0)
-                            functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+//                            functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+                            functor_type::apply (*it1, typename functor_type::argument2_type(0)), ++ it1;
                         ++ it2;
                     }
                 } else {
@@ -850,7 +855,8 @@ namespace detail {
                     it1_size -= size1;
                     if (!functor_type::computed) {
                         while (-- size1 >= 0)   // zeroing
-                            functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+//                            functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+                            functor_type::apply (*it1, typename functor_type::argument2_type(0)), ++ it1;
                     } else {
                         it1 += size1;
                     }
@@ -865,7 +871,8 @@ namespace detail {
             size1 = it1_size;
             if (!functor_type::computed) {
                 while (-- size1 >= 0)   // zeroing
-                    functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+//                    functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+                    functor_type::apply (*it1, typename functor_type::argument2_type(0)), ++ it1;
             } else {
                 it1 += size1;
             }
@@ -883,7 +890,8 @@ namespace detail {
 #endif
                 difference_type size1 (it1_end - it1);
                 while (-- size1 >= 0)
-                    functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+//                    functor_type::apply (*it1, value_type/*zero*/()), ++ it1;
+                    functor_type::apply (*it1, typename functor_type::argument2_type(0)), ++ it1;
                 ++ it2;
             }
         } else {
@@ -1008,7 +1016,8 @@ namespace detail {
                                 break;
                         } else if (compare < 0) {
                             if (!functor_type::computed) {
-                                functor_type::apply (*it2, value_type/*zero*/());
+//                                functor_type::apply (*it2, value_type/*zero*/());
+                                functor_type::apply (*it2, typename functor_type::argument2_type(0));
                                 ++ it2;
                             } else
                                 increment (it2, it2_end, - compare);
@@ -1027,7 +1036,8 @@ namespace detail {
                 }
                 if (!functor_type::computed) {
                     while (it2 != it2_end) {    // zeroing
-                        functor_type::apply (*it2, value_type/*zero*/());
+//                        functor_type::apply (*it2, value_type/*zero*/());
+                        functor_type::apply (*it2, typename functor_type::argument2_type(0));
                         ++ it2;
                     }
                 } else {
@@ -1044,7 +1054,8 @@ namespace detail {
                     typename M::iterator2 it2_end (end (it1, iterator1_tag ()));
 #endif
                     while (it2 != it2_end) {    // zeroing
-                        functor_type::apply (*it2, value_type/*zero*/());
+//                        functor_type::apply (*it2, value_type/*zero*/());
+                        functor_type::apply (*it2, typename functor_type::argument2_type(0));
                         ++ it2;
                     }
                     ++ it1;
@@ -1065,7 +1076,8 @@ namespace detail {
                 typename M::iterator2 it2_end (end (it1, iterator1_tag ()));
 #endif
                 while (it2 != it2_end) {    // zeroing
-                    functor_type::apply (*it2, value_type/*zero*/());
+//                    functor_type::apply (*it2, value_type/*zero*/());
+                    functor_type::apply (*it2, typename functor_type::argument2_type(0));
                     ++ it2;
                 }
                 ++ it1;
@@ -1128,7 +1140,8 @@ namespace detail {
                                 break;
                         } else if (compare < 0) {
                             if (!functor_type::computed) {
-                                functor_type::apply (*it1, value_type/*zero*/()); // zeroing
+//                                functor_type::apply (*it1, value_type/*zero*/()); // zeroing
+                                functor_type::apply (*it1, typename functor_type::argument2_type(0)); // zeroing
                                 ++ it1;
                             } else
                                 increment (it1, it1_end, - compare);
@@ -1147,7 +1160,8 @@ namespace detail {
                 }
                 if (!functor_type::computed) {
                     while (it1 != it1_end) {    // zeroing
-                        functor_type::apply (*it1, value_type/*zero*/());
+//                        functor_type::apply (*it1, value_type/*zero*/());
+                        functor_type::apply (*it1, typename functor_type::argument2_type(0));
                         ++ it1;
                     }
                 } else {
@@ -1164,7 +1178,8 @@ namespace detail {
                     typename M::iterator1 it1_end (end (it2, iterator2_tag ()));
 #endif
                     while (it1 != it1_end) {    // zeroing
-                        functor_type::apply (*it1, value_type/*zero*/());
+//                        functor_type::apply (*it1, value_type/*zero*/());
+                        functor_type::apply (*it1, typename functor_type::argument2_type(0));
                         ++ it1;
                     }
                     ++ it2;
@@ -1185,7 +1200,8 @@ namespace detail {
                 typename M::iterator1 it1_end (end (it2, iterator2_tag ()));
 #endif
                 while (it1 != it1_end) {    // zeroing
-                    functor_type::apply (*it1, value_type/*zero*/());
+//                    functor_type::apply (*it1, value_type/*zero*/());
+                    functor_type::apply (*it1, typename functor_type::argument2_type(0));
                     ++ it1;
                 }
                 ++ it2;

