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.