#pragma once #include namespace sprawl { namespace collections { namespace detail { template struct ListItem; } } } template struct sprawl::collections::detail::ListItem { ListItem(T const& item) : next(nullptr) , prev(nullptr) , m_value(item) { // } ListItem(T&& item) : next(nullptr) , prev(nullptr) , m_value(std::move(item)) { // } ListItem* next; ListItem* prev; T m_value; };