In case anyone else is wondering: https://github.com/Lolilolight/ODFAEG
Manually managed C arrays of pointer of manually managed states. I mean if it was a C library we could talk about it again, but this... nope - but as we all know, you don't like RAII.
It isn't the fact that I don't like RAII, but smart_pointers are not pointers, so you can't pass them to a pointer to a function... (And they are not copiable too, they only encapsulate a pointer who's destroyed when the object is destroyed, this is RAII)
References are also causing a lot of problems when we want to store them into a container to pass them to a function pointer. (So I can't pass smart pointers)
But anyway I use std::vectors of pointers and std::array, and, they use RAII it seems. (No ?)
So, I've no problems with the memory management.
Thus it joins what I've said on another topic, every classes should have a class with a destructor. (And essentially containers like std::vectors who can store anything)
And should use the move semantic to pass adresses to function pointers. (Instead of the RAII mecanism)
Here, I use the std::vectors because I don't have to pass them to a function pointer but..., in other case..., it's very paintfull with RAII.
I tried to use a std::reference_wrapper to pass smart pointers to function pointers but it didn't worked, and if I pass a pointer I've to delete them manually...
PS : It would be nice if the std::vectors can also have a forward_as_vector function like std::tuples who are very helpfull.
So I prefer to use the move semantic who's less paintfull. (To move the pointers from my first list, to the pointers to my second list)