666 {
667 out << "|";
668
669 constexpr_for<0, sizeof...(Ts), 1>([&](auto ntuple_index) {
670 static const auto x = self.template get_nth_type<ntuple_index>();
671 out << " ";
672 out << std::setw(5) << x.get_name();
673 out << " |";
674 });
675
676 out << "\n";
677 out << "|";
678 constexpr_for<0, sizeof...(Ts), 1>([&](auto i) {
679 out << std::setw(5) << "-------|";
680 });
681 out << "\n";
682 auto size = self.size();
683 for (int i = 0; i < size; ++i) {
684 auto current_element = self[i];
685 out << "|";
686 constexpr_for<0, sizeof...(Ts), 1>([&](auto ntuple_index) {
687 static const auto x = self.template get_nth_type<ntuple_index>();
688 out << " ";
689 out << std::setw(5) << x.get(current_element).v;
690 out << " |";
691 });
692 out << "\n";
693 }
694
695 return out;
696 }