Classe de amigo C ++ std :: vector

É possível fazer o seguinte portably:

struct structure {
    structure() {}
private:
    // only allow container copy construct
    structure(const structure&) {}
    // in general, does not work because allocator (not vector) calls copy construct
    friend class std::vector<structure>;
};

mensagem de exemplo tentando compilar acima:

In member function void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) 
[with _Tp = kernel_data<const double*>::block]:
...
/usr/include/c++/4.3/ext/new_allocator.h:108: error: within this context

obrigado

Eu tenho uma solução alternativa, mas estou curioso para saber como isso pode ser possível.

questionAnswers(1)

yourAnswerToTheQuestion