stl_io_helper.h Source File

LibRPA: stl_io_helper.h Source File
LibRPA
stl_io_helper.h
1 #pragma once
2 #include <array>
3 #include <map>
4 #include <ostream>
5 #include <set>
6 #include <vector>
7 #include <utility>
8 
10 template <typename T>
11 std::ostream& operator<<(std::ostream& os, const std::set<T> &set_objs);
12 
14 template <typename T>
15 std::ostream& operator<<(std::ostream& os, const std::vector<T> &vector_objs);
16 
18 template <typename T1, typename T2>
19 std::ostream& operator<<(std::ostream& os, const std::pair<T1, T2> &pair_objs);
20 
22 template <typename T, size_t N>
23 std::ostream& operator<<(std::ostream& os, const std::array<T, N> &arr_objs);
24 
26 template <typename Tkey, typename Tval>
27 std::ostream& operator<<(std::ostream& os, const std::map<Tkey, Tval> &map_objs);
28 
30 template <typename Tkey1, typename Tkey2, typename Tval>
31 void print_keys(std::ostream& os, const std::map<Tkey1, std::map<Tkey2, Tval>> &nested_map);
32 
34 template <typename Tkey1, typename Tkey2, typename Tkey3, typename Tval>
35 void print_keys(std::ostream& os, const std::map<Tkey1, std::map<Tkey2, std::map<Tkey3, Tval>>> &nested_map);
36 
38 template <typename Tkey1, typename Tkey2, typename Tval>
39 int get_num_keys(const std::map<Tkey1, std::map<Tkey2, Tval>> &nested_map);
40 
42 template <typename Tkey1, typename Tkey2, typename Tkey3, typename Tval>
43 int get_num_keys(const std::map<Tkey1, std::map<Tkey2, std::map<Tkey3, Tval>>> &nested_map);
44 
45 #include "stl_io_helper.hpp" // IWYU pragma: export