C++ Class Typedef Struct does not name a type
I'm trying to make use of typedef structs inside of my C++ program. I started writing the following code until I received an error when trying to add a method to my class that returns a template typedef struct pointer.

StructSource.h

    template <typename T>
    class StructSource {
    public:
        struct TestStruct{
            T value;
        };
    };

User.h

    #include "StructSource.h"
    
    class User {
        public:
            typedef StructSource<int>::TestStruct IntStruct;
    
            IntStruct *getIntStruct();
        
    };

User.cpp

    #include "User.h"
    
    IntStruct *User::getIntStruct() {
        return 0;
    }

This gives the following error when compiling with GCC.

> User.cpp:3:1: error: ‘IntStruct’ does not name a type

I'm at a loss to explain why this is the case. What type information am I missing?
C++ Class Typedef Struct does not name a type
===

I'm trying to make use of typedef structs inside of my C++ program. I started writing the following code until I received an error when trying to add a method to my class that returns a template typedef struct pointer.

StructSource.h

    template <typename T>
    class StructSource {
    public:
        struct TestStruct{
            T value;
        };
    };

User.h

    #include "StructSource.h"
    
    class User {
        public:
            typedef StructSource<int>::TestStruct IntStruct;
    
            IntStruct *getIntStruct();
        
    };

User.cpp

    #include "User.h"
    
    IntStruct *User::getIntStruct() {
        return 0;
    }

This gives the following error when compiling with GCC.

> User.cpp:3:1: error: ‘IntStruct’ does not name a type

I'm at a loss to explain why this is the case. What type information am I missing?