From 36f887970e377808966d6cf5048f4435fd0d3f27 Mon Sep 17 00:00:00 2001
From: Pietro Incardona <i-bird@localhost.localdomain>
Date: Wed, 9 Mar 2016 07:32:21 -0500
Subject: [PATCH] Small fix in the CSVWriter

---
 configure.ac                           | 1 +
 csv_out_test.csv                       | 2 +-
 src/CSVWriter/CSVWriter.hpp            | 9 +++------
 src/CSVWriter/CSVWriter_unit_tests.hpp | 4 ++--
 4 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index ee2c8c7a..806329ac 100755
--- a/configure.ac
+++ b/configure.ac
@@ -16,6 +16,7 @@ m4_ifdef([AX_BOOST_BASE],,[m4_include([m4/ax_boost_base.m4])])
 m4_ifdef([AX_BOOST_IOSTREAMS],,[m4_include([m4/ax_boost_iostreams.m4])])
 m4_ifdef([AX_BOOST_PROGRAM_OPTIONS],,[m4_include([m4/ax_boost_program_options.m4])])
 m4_ifdef([AX_BOOST_UNIT_TEST_FRAMEWORK],,[m4_include([m4/ax_boost_unit_test_framework.m4])])
+m4_ifdef([AX_LIB_HDF5],,[m4_include([m4/ax_lib_hdf5.m4])])
 
 case $host_os in
    *cygwin*)
diff --git a/csv_out_test.csv b/csv_out_test.csv
index 9ba91bdd..a282d1bf 100644
--- a/csv_out_test.csv
+++ b/csv_out_test.csv
@@ -1,4 +1,4 @@
-x[0],x[1],x[2],column_0,column_1,column_2,column_3,column_4_[0],column_4_[1],column_4_[2],column_5_[0][0],column_5_[0][1],column_5_[0][2],column_5_[1][0],column_5_[1][1],column_5_[1][2],column_5_[2][0],column_5_[2][1],column_5_[2][2]
+x[0],x[1],x[2],x,y,z,s,v_[0],v_[1],v_[2],t_[0][0],t_[0][1],t_[0][2],t_[1][0],t_[1][1],t_[1][2],t_[2][0],t_[2][1],t_[2][2]
 1,2,3,1,2,3,4,1,2,7,10,13,8,19,23,5,4,3,11
 1,2,3,1,2,3,4,2,3,8,11,14,9,20,24,6,5,4,12
 1,2,3,1,2,3,4,3,4,9,12,15,10,21,25,7,6,5,13
diff --git a/src/CSVWriter/CSVWriter.hpp b/src/CSVWriter/CSVWriter.hpp
index fc6822c8..7cd93886 100644
--- a/src/CSVWriter/CSVWriter.hpp
+++ b/src/CSVWriter/CSVWriter.hpp
@@ -86,15 +86,12 @@ struct csv_col
 
 	//! It call the functor for each member
     template<typename T>
-    void operator()(T& t)
+    inline void operator()(T& t)
     {
 		// This is the type of the csv column
-		typedef decltype(std::declval<Tobj>.template get<T::value>()) col_type;
-
-		// Remove the reference from the column type
-		typedef typename boost::remove_reference<col_type>::type col_rtype;
+		typedef typename boost::mpl::at<typename Tobj::type,boost::mpl::int_<T::value>>::type col_type;
 
-    	csv_col_str<col_rtype>(std::string(Tobj::attributes::name[T::value]),str);
+    	csv_col_str<col_type>(std::string(Tobj::attributes::name[T::value]),str);
     }
 };
 
diff --git a/src/CSVWriter/CSVWriter_unit_tests.hpp b/src/CSVWriter/CSVWriter_unit_tests.hpp
index 048ed859..0e233630 100644
--- a/src/CSVWriter/CSVWriter_unit_tests.hpp
+++ b/src/CSVWriter/CSVWriter_unit_tests.hpp
@@ -10,7 +10,7 @@ BOOST_AUTO_TEST_SUITE( csv_writer_test )
 BOOST_AUTO_TEST_CASE( csv_writer_particles )
 {
 	// Allocate a property vector
-	auto v_prp = allocate_openfpm(16);
+	auto v_prp = allocate_openfpm_prp(16);
 	// Vector of position
 	openfpm::vector<Point<3,float>> v_pos;
 
@@ -23,7 +23,7 @@ BOOST_AUTO_TEST_CASE( csv_writer_particles )
 	}
 
 	// CSVWriter test
-	CSVWriter<openfpm::vector<Point<3,float>>, openfpm::vector<Point_test<float>> > csv_writer;
+	CSVWriter<openfpm::vector<Point<3,float>>, openfpm::vector<Point_test_prp<float>> > csv_writer;
 
 	// Write the CSV
 	csv_writer.write("csv_out.csv",v_pos,v_prp);
-- 
GitLab