I've updated to the latest and greatest. Last time I updated was probably a year or so ago. I'm enjoying some of the changes so far, particularly around making it easier to create objects like the camera. Very nice.
One change, that's currently conflicting with my old code is that I can no longer convert a unique pointer to a shared pointer. This makes sense, since the conversion would invalidate the unique pointer (which isn't particularly nice). However, this used to work. I had a factory to create states and returned them as unique pointers to indicate that ownership was being passed from the factory to the calling class.
I've taken a look around and I'd just like to confirm for my own code, as well as further use of Chilli Source that the new convention is to pass a shared reference into such methods to imply ownership belongs to the calling code, not the factory?
CS::StateSPtr newState = prototypeFactory->CreatePrototypeState(name);
I have no issue with this. I'd just like to keep things consistent between my code and Chilli Source as mixing conventions can get confusing (Plus, my old code wont compile anyway).
Also, I've noticed this forum is quite barren now. Is CS still being worked on or has Tag completely moved over to Unity now?
Not entirely sure what had changed, be it the shared pointer implementation, compiler or what have you but I managed to get it working.
It was not a big fan of casting directly from a unique pointer of a derived class to a shared pointer of a base class. i.e. PrototypeStateUPtr -> PrototypeStateSPtr is A-OK, then PrototypeStateSPtr -> StateSPtr is fine too, but skipping over the middle part was not OK.