#pragma once #include namespace Generic { template class UndirectedNode { public: UndirectedNode(T value, std::shared_ptr left = nullptr, std::shared_ptr right = nullptr); ~UndirectedNode(); T value; std::shared_ptr next; private: }; template UndirectedNode::UndirectedNode(T value, std::shared_ptr left, std::shared_ptr right) { this->value = value; this->next = next; } template UndirectedNode::~UndirectedNode() {} }