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