#pragma once #include template struct Row { Row(std::string name): table_name(std::move(name)) {} template typename Type::real_type& col() { auto&& col = std::get(this->columns); return col.value; } template const auto& col() const { auto&& col = std::get(this->columns); return col.value; } void clear() { this->clear_col<0>(); } std::tuple columns{}; std::string table_name; private: template typename std::enable_if::type clear_col() { std::get(this->columns).clear(); this->clear_col(); } template typename std::enable_if::type clear_col() { } };