In all professional code I saw, a sort of reference counting often deals with objects's lifetime.
My question is if reference counting is really the best and the proper way to deal with ID3D11Resource objects, and if it is better to use C++11's smart pointers or Microsoft's implementation (like ComPtr and CComPtr), or make my own reference counting implementation ("higly inspired" by a professional solution), or use raw/naked pointers brutally (I guess this one is not the best solution).
My doubts are about ID3D11Resource objects: since they have also to deal with GPU memory, should I take particularly care about something I'm missing, or is it suffice to treat them as any other objects?