[newfield_revision Patch] Add MultiArg4 to Functions/MultiArg.h

Jeffrey Oldham oldham at codesourcery.com
Wed Aug 29 16:34:45 UTC 2001


Apparently, MultiArg4 was inadvertently omitted from
src/Functions/MultiArg.h.

2001-08-29  Jeffrey D. Oldham  <oldham at codesourcery.com>

        * MultiArg.h (MultiArg4): New structure analogous to MultiArg5.
        (applyMultiArg(MultiArg4, ...)): New function corresponding to
        MultiArg4.

Tested:         compiled StatigraphicFlow.cpp with Linux gcc 3.0.1 using this
Approved by:    Stephen Smith
Applied to:     newfield_revision branch

Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
Index: MultiArg.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Functions/MultiArg.h,v
retrieving revision 1.5
diff -c -p -r1.5 MultiArg.h
*** MultiArg.h	2001/03/28 22:33:16	1.5
--- MultiArg.h	2001/08/29 02:47:38
*************** struct MultiArg3
*** 270,275 ****
--- 270,299 ----
    A3 a3_m;
  };
  
+ template<class A1, class A2, class A3, class A4>
+ struct MultiArg4
+ {
+   enum { size = 4 };
+ 
+   MultiArg4(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
+     : a1_m(a1), a2_m(a2), a3_m(a3), a4_m(a4)
+   {
+   }
+ 
+   template<class Dom>
+   typename View1<MultiArg4<A1, A2, A3, A4>, Dom>::Type_t
+   operator()(Dom &dom) const
+   {
+     typedef typename View1<MultiArg4<A1, A2, A3, A4>, Dom>::Type_t Ret_t;
+     return Ret_t(a1_m(dom), a2_m(dom), a3_m(dom), a4_m(dom));
+   }
+ 
+   A1 a1_m;
+   A2 a2_m;
+   A3 a3_m;
+   A4 a4_m;
+ };
+ 
  template<class A1, class A2, class A3, class A4, class A5>
  struct MultiArg5
  {
*************** void applyMultiArg(const MultiArg3<A1, A
*** 373,378 ****
--- 397,413 ----
    f(node.a1_m, condition[0]);
    f(node.a2_m, condition[1]);
    f(node.a3_m, condition[2]);
+ }
+ 
+ template<class A1, class A2, class A3, class A4, class Function>
+ void applyMultiArg(const MultiArg4<A1, A2, A3, A4> &node,
+ 		   const Function &f,
+ 		   const std::vector<bool> &condition)
+ {
+   f(node.a1_m, condition[0]);
+   f(node.a2_m, condition[1]);
+   f(node.a3_m, condition[2]);
+   f(node.a4_m, condition[3]);
  }
  
  template<class A1, class A2, class A3, class A4, class A5, class Function>


More information about the pooma-dev mailing list