Is it possible to forward declare a typedef that is within a namespace?
I've looked around and I can't quite tell if the other similar questions answer this or not.

    // lib.h
    namespace lib_namespace
    {
      struct lib_struct
      {
        typedef std::vector<LibObject> struct_value;
      };
      
      typedef lib_struct::struct_value lib_value; // compiler points here
    };

    // my.h
    // attempt at forward declaration
    namespace lib_namespace { class lib_value; };
    ...

    // my.cpp
    #include "lib.h"

I get a redefinition compiler error which is understandable, but is there a way to forward declare that typedef?  

My intent is to avoid adding lib.h as a dependency outside of the library I'm making.  Perhaps there's a better way to achieve that?
    


Is it possible to forward declare a typedef that is within a namespace?
===

I've looked around and I can't quite tell if the other similar questions answer this or not.

    // lib.h
    namespace lib_namespace
    {
      struct lib_struct
      {
        typedef std::vector<LibObject> struct_value;
      };
      
      typedef lib_struct::struct_value lib_value; // compiler points here
    };

    // my.h
    // attempt at forward declaration
    namespace lib_namespace { class lib_value; };
    ...

    // my.cpp
    #include "lib.h"

I get a redefinition compiler error which is understandable, but is there a way to forward declare that typedef?  

My intent is to avoid adding lib.h as a dependency outside of the library I'm making.  Perhaps there's a better way to achieve that?
    

