는 어떻게 든이 일을 해결해야합니다typedef에서 순환 링크를 해결하는 방법은 무엇입니까?
class MyType; // this thing doesn't help here
typedef std::stack<boost::variant<int, std::function<shared_ptr<MyType>()>>> MyType;
나는 어떤 도움 감사합니다 이것
error C2371: 'MyType': redefinition; different basic types
같은 오류가 발생합니다.
편집 :
이 프록시 구조를 사용하여 쉽게 수행 할 수 있습니다
struct MyStruct;
typedef std::stack<boost::variant<int, std::function<shared_ptr<MyStruct>()>>> MyType;
struct MyStruct {
MyType data;
};
그러나이 작업을 수행하는 더 편리한 방법이 될 수 있어야합니다. 당신은이 작업을 수행 할 수 없습니다
나는 그것이 가능합니다 모르겠어요 중 'typedef' 또는'using'. 그러나 초록에서이 질문은 반드시 부스트를 우려하지는 않습니다. 이 문제를 일으키는 일반 템플릿을 구성 할 수 있습니다. 보다 일반적인 방법으로 문제를 제기하면 문제에 더 많은 관심을 기울일 수 있습니다. –
네, 맞습니다, 로버트. 나는 그것을 더 일반적으로 만들었다. – Hakuhonoo