678 {
679 out << "|";
680
681 constexpr_for<0, sizeof...(Ts), 1>([&](auto ntuple_index) {
682 static const auto x = self.template get_nth_type<ntuple_index>();
683 out << " ";
684 out << std::setw(5) << x.get_name();
685 out << " |";
686 });
687
688 out << "\n";
689 out << "|";
690 constexpr_for<0, sizeof...(Ts), 1>([&](auto i) {
691 out << std::setw(5) << "-------|";
692 });
693 out << "\n";
694 auto size = self.size();
695 for (int i = 0; i < size; ++i) {
696 auto current_element = self[i];
697 out << "|";
698 constexpr_for<0, sizeof...(Ts), 1>([&](auto ntuple_index) {
699 static const auto x = self.template get_nth_type<ntuple_index>();
700 out << " ";
701 out << std::setw(5) << x.get(current_element).v;
702 out << " |";
703 });
704 out << "\n";
705 }
706
707 return out;
708 }