“elaborated type refers to typedef” error when trying to befriend a typedef

后端 未结 3 1525
醉梦人生
醉梦人生 2021-01-12 09:43

Let\'s say I have the following piece of code (a simple CRTP class hierarchy). I want to typedef the base class type to save myself typing (in my actual code, I use the base

3条回答
  •  执念已碎
    2021-01-12 10:04

    You actually can do it in C++ earlier than C++11, but it requires a fairly elaborate (haha) workaround, along the lines of, 1st declare this "helper":

    template< class T > struct ParamTypeStruct { typedef T ParamType; };
    

    Then, your friend declaration:

    friend class ParamTypeStruct< BaseType >::ParamType;
    

提交回复
热议问题