Title probably doesn't make a lot of sense, so I'll start with some code:
class Foo : public std::vector<Foo>
{
};
...
Foo f;
f.push_back( Foo() );
Why is this allowed by th开发者_StackOverflow中文版e compiler? My brain is melting at this stage, so can anyone explain whether there are any reasons you would want to do this? Unfortunately I've just seen a similar pattern in some production C# code and wondered why anyone would use this pattern.
can anyone explain whether there are any reasons you would want to do this?
Curiously recurring template pattern.
精彩评论