578 {
579 out << "|";
580
581 constexpr_for<0, sizeof...(Ts), 1>([&](auto ntuple_index) {
582 static const auto x = self.template get_nth_type<ntuple_index>();
583 out << " ";
584 out << std::setw(5) << x.get_name();
585 out << " |";
586 });
587
588 out << "\n";
589 out << "|";
590 constexpr_for<0, sizeof...(Ts), 1>([&](auto i) {
591 out << std::setw(5) << "-------|";
592 });
593 out << "\n";
594 auto size = self.size();
595 for (int i = 0; i < size; ++i) {
596 auto current_element = self[i];
597 out << "|";
598 constexpr_for<0, sizeof...(Ts), 1>([&](auto ntuple_index) {
599 static const auto x = self.template get_nth_type<ntuple_index>();
600 out << " ";
601 out << std::setw(5) << x.get(current_element).v;
602 out << " |";
603 });
604 out << "\n";
605 }
606
607 return out;
608 }