Pergunta

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 the 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.

Foi útil?

Solução

can anyone explain whether there are any reasons you would want to do this?

Curiously recurring template pattern.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top