OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
object_si_d< v_src, v_dst, OBJ_NORMAL, prp...> Struct Template Reference

It copy the properties from one object to another. More...

Detailed Description

template<typename v_src, typename v_dst, int... prp>
struct object_si_d< v_src, v_dst, OBJ_NORMAL, prp...>

It copy the properties from one object to another.

Given a set of properties for the source (0,1,3) it copy that property to the destination properties (0,1,2)

Object copy example

typedef Point_test<float> p;
typedef Point_test<float>::type vboost;
typedef object_creator<Point_test<float>::type,0,1,4>::type vboost_red;
object<vboost> src;
object<vboost_red> dst;
// fill the source properties x,y,v = 0,1,4 with data
boost::fusion::at_c<p::x>(src.data) = 1.0;
boost::fusion::at_c<p::y>(src.data) = 2.0;
for (size_t i = 0 ; i < 3 ; i++)
boost::fusion::at_c<p::v>(src.data)[i] = i + 5.0;
// copy from src to dst
object_si_d<object<vboost>,object<vboost_red>,OBJ_NORMAL,0,1,4>(src,dst);
// Check the result
BOOST_REQUIRE_EQUAL(boost::fusion::at_c<0>(dst.data),1.0);
BOOST_REQUIRE_EQUAL(boost::fusion::at_c<1>(dst.data),2.0);
for (size_t i = 0 ; i < 3 ; i++)
BOOST_REQUIRE_EQUAL(boost::fusion::at_c<2>(dst.data)[i],i + 5.0);

Definition at line 135 of file object_si_d.hpp.

#include <object_si_d.hpp>

Public Member Functions

 object_si_d (const v_src &&vs, v_dst &&vd)
 
 object_si_d (const v_src &vs, v_dst &vd)
 

The documentation for this struct was generated from the following file: