diff --git a/src/CSVWriter.hpp b/src/CSVWriter.hpp index ff31345666f1beefb27fed672bfda9dadc483cb4..ad1f87c9b6005d7a00fde430d5c9e304ba3953b8 100644 --- a/src/CSVWriter.hpp +++ b/src/CSVWriter.hpp @@ -54,7 +54,7 @@ struct csv_prp void operator()(T& t) { // This is the type of the csv column - typedef typename boost::fusion::result_of::at_c<typename Tobj::type,T::value>::type col_type; + typedef decltype(obj.template get<T::value>()) col_type; // Remove the reference from the column type typedef typename boost::remove_reference<col_type>::type col_rtype; @@ -87,7 +87,7 @@ struct csv_col void operator()(T& t) { // This is the type of the csv column - typedef typename boost::fusion::result_of::at_c<typename Tobj::type,T::value>::type col_type; + 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; @@ -206,9 +206,9 @@ class CSVWriter } // Object to write - typename v_prp::value_type obj = vpr.get(i); + auto obj = vpr.get(i); - csv_prp<typename v_prp::value_type> c_prp(str,obj); + csv_prp<decltype(obj)> c_prp(str,obj); // write the properties to the stream string boost::mpl::for_each< boost::mpl::range_c<int,0,v_prp::value_type::max_prop> >(c_prp);