Я пытаюсь использовать структуры typedef внутри моей программы на C++. Я начал писать следующий код, пока не получил ошибку при попытке добавить метод к моему классу, который возвращает указатель на структуру шаблона typedef.C++ Класс Typedef Struct не называет тип
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;
}
Это дает следующее сообщение об ошибке при компиляции с GCC.
User.cpp:3:1: error: ‘IntStruct’ does not name a type
Я затрудняюсь объяснить, почему это так. Какую информацию типа мне не хватает?
Быстрый ответ, пока я ищу дублированный вопрос: используйте 'User :: IntStruct'. – Xeo
* Шляпы лба * Конечно. – Nexus