#pragma once #include "fusion_static_dispatch.hpp" #include #include #include #include #include template struct fusion_model { }; template struct fusion_model> { static_assert(boost::fusion::traits::is_sequence::type::value, "T is not a boost fusion sequence"); typedef std::vector data_type; std::vector data; size_t row_count() const { return data.size(); } size_t column_count() const { return boost::fusion::result_of::size::type::value; } std::string horizontal_header_data(size_t section) const { return get_nth_name(section); } boost::any get_cell(size_t row, size_t column) const { return get_nth(data[row], column); } }; template struct fusion_model> { std::map data; };