fork download
  1. #include <iostream>
  2. #include <memory>
  3. #include <vector>
  4.  
  5. template<typename T>
  6. class Nodes {
  7. private:
  8. unsigned m_numParams;
  9. std::vector<std::shared_ptr<T>> m_vNodes;
  10.  
  11. public:
  12. Nodes() : m_numParams(0), m_vNodes{nullptr} {}
  13.  
  14. template <typename ... Ts>
  15. explicit Nodes( Ts&&...ts) :
  16. m_numParams(sizeof...(Ts)),
  17. m_vNodes{std::make_shared<T>(std::forward<Ts>(ts))...}
  18. {}
  19.  
  20. explicit Nodes(std::initializer_list<T> ini) :
  21. m_numParams(ini.size())
  22. {
  23. std::cout << "initalizer_list" << std::endl;
  24. for (auto&& e : ini) {
  25. m_vNodes.push_back(std::make_shared<T>(e));
  26. }
  27. }
  28. };
  29.  
  30. int main()
  31. {
  32. Nodes<int> n{3, 4, 5};
  33.  
  34. }
  35.  
Success #stdin #stdout 0s 3416KB
stdin
Standard input is empty
stdout
initalizer_list