In member function `ListDL::ListNode* ListDL::validate(const Position*) const [with T = std::string]': instantiated from `Position* ListDL::prev(const Position*) const [with T = std::string]' instantiated from here comparison between distinct pointer types `ListDL::ListNode*' and `ListDL*' lacks a cast request for member `head' in `tmp2', which is of non-class type `ListDL::ListNode*'