C++ cannot find class within the same namespace -


update: minimal code reproduce error: in typetraits.hpp:

namespace fl {     namespace utilities     {         template <class t>         struct remove_reference         {             using type = t;         };          template <class t>         struct remove_reference<t&>         {             using type = t;         };          template <class t>         struct remove_reference<t&&>         {             using type = t;         };     } } 

in typetraits.h

#include "typetraits.hpp" namespace ftd {     template <class t> using remove_reference = fl::utilities::remove_reference<t>; } 

in utility.h:

#include "typetraits.h" namespace ftd {     template <class t>     constexpr t&& forward(typename remove_reference<t>::type& t) noexcept     {         return static_cast<t&&>(t);     }      template <class t>     constexpr t&& forward(typename remove_reference<t>::type&& t) noexcept     {         return static_cast<t&&>(t);     } } 

first occasion uses forward function: in list.hpp

#include "utility.h" namespace fl {     namespace containers     {         struct nodebase { /* code... */ };         /* code... */         template <class t> struct listnode : public nodebase         {              /* code... */             template <class... args>             listnode(args&&... args) : m_data(ftd::forward<t>(args)...) {}             /* code... */             t m_data;         };     } } 

the error: no template named 'remove_reference'; did mean 'std::remove_reference'?


Comments