Enviado em 10/01/2023 - 12:01h
Alguém (humano) sabe como posso criar um template assim:
1-quero que um shared_ptr guarde o objeto alocado com new
2-mas quero construir objetos de qualquer tipo e guardar no shared_ptr
Exemplo:
auto sprite = addComponent<Sprite>(entity, paramSprite1, paramSprite2, paramSprite3);
Os paramSprite* são parametros para construção do objeto sprite.
Eu não estou conseguindo pensar num jeito do shared_ptr ter um tipo fixo, o compilador tá exigindo de mim que ele seja de um tipo fixo mas não é que quero.
Eu quero um shared_ptr pra qualquer tipo passado na template addComponent. Ali no exemplo é o tipo Sprite.
Tentei usar shared_ptr<void> mas não é aceito porque void * não existe nos smart pointer, o que acho um absurdo diga-se de passagem.
Então, como criar um shared_ptr com um ponteiro "universal"?
Uso c++ 17.
https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!
1-quero que um shared_ptr guarde o objeto alocado com new
2-mas quero construir objetos de qualquer tipo e guardar no shared_ptr
Exemplo:
auto sprite = addComponent<Sprite>(entity, paramSprite1, paramSprite2, paramSprite3);
Os paramSprite* são parametros para construção do objeto sprite.
Eu não estou conseguindo pensar num jeito do shared_ptr ter um tipo fixo, o compilador tá exigindo de mim que ele seja de um tipo fixo mas não é que quero.
Eu quero um shared_ptr pra qualquer tipo passado na template addComponent. Ali no exemplo é o tipo Sprite.
Tentei usar shared_ptr<void> mas não é aceito porque void * não existe nos smart pointer, o que acho um absurdo diga-se de passagem.
Então, como criar um shared_ptr com um ponteiro "universal"?
Uso c++ 17.
https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!