init boost :: opcional de objeto não copiável
O que devo fazer para inicializarboost::optional< T >
se tipo subjacenteT
não é padrão construtível, não copiável / móvel, mas a instância de alguém ainda pode existir?
É proibido paraboost::optional
por quaisquer razões semânticas para ter algum membro funcionar comotemplate< typename... Args > boost::optional< T >::construct(Args && ...args)
, que fornece todos os argumentos para no localoperator new
para construir o objeto inteiramente (para o tipo non-refT
) Variante é ter função de não membro comostd::make_shared< T >
.
Parece-me que o meu problema pode ser resolvido com o uso destd::unique_ptr
/std::shared_ptr
, mas neste caso minha pergunta é: "Por queboost::optional
o progresso está congelado? "