fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <tuple>
  4.  
  5. template <typename T>
  6. using Container = std::vector<T>;
  7.  
  8. template<typename... Ts>
  9. class Mgr2
  10. {
  11. private:
  12. std::tuple<Container<Ts>...> _containers;
  13. public:
  14. Mgr2() {};
  15.  
  16. template <typename T>
  17. const Container<T>& get() const { return std::get<Container<T>>(_containers); }
  18.  
  19. template <typename T>
  20. Container<T>& get() { return std::get<Container<T>>(_containers); }
  21. };
  22.  
  23. int main()
  24. {
  25. Mgr2<int, float> mgr;
  26.  
  27. mgr.get<int>() = {4, 8, 15, 16, 23, 42};
  28. mgr.get<float>().push_back(4.2f);
  29.  
  30. for (const auto e : mgr.get<int>()) {
  31. std::cout << " " << e;
  32. }
  33. std::cout << std::endl;
  34. for (const auto f : mgr.get<float>()) {
  35. std::cout << " " << f;
  36. }
  37. std::cout << std::endl;
  38. }
  39.  
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
 4 8 15 16 23 42
 4.2