[variant] a question about recursive typedef

Hello, everyone:
I want write a general linked list(any element in the list may be
a node or nested general linked list, so recursive).
I think general linked list could by defined as following(see spirit's
tutorial mini_xml):
glist = *glist_node
glist_node = node | glist
so here is the typedef according to the above rules:
struct node
{
int data;
};
typedef boost::variant

Hello, everyone:
I want write a general linked list(any element in the list may be a node or nested general linked list, so recursive). I think general linked list could by defined as following(see spirit's tutorial mini_xml):
glist = *glist_node glist_node = node | glist
so here is the typedef according to the above rules:
struct node { int data; }; typedef boost::variant
glist_node; //typedef 1 typedef std::list glist; //typedef 2 so the problem comes here, in the typedef 1, how can I forward declare glist?
I think this should work:
struct node
{
int data;
};
typedef boost::make_recursive_variant

That cool! Thank you! -----原始邮件----- From: Nathan Ridge Sent: Tuesday, November 08, 2011 10:42 AM Newsgroups: gmane.comp.lib.boost.user To: Boost Mailing List Subject: Re: [variant] a question about recursive typedef
Hello, everyone:
I want write a general linked list(any element in the list may be a node or nested general linked list, so recursive). I think general linked list could by defined as following(see spirit's tutorial mini_xml):
glist = *glist_node glist_node = node | glist
so here is the typedef according to the above rules:
struct node { int data; }; typedef boost::variant
glist_node; //typedef 1 typedef std::list glist; //typedef 2 so the problem comes here, in the typedef 1, how can I forward declare glist?
I think this should work:
struct node
{
int data;
};
typedef boost::make_recursive_variant
participants (3)
-
gongyiling
-
Nathan Ridge
-
龚逸玲