New C++ pointer type
boost::scoped_ptr<T> is a great tool for RAII pointer accounting when change-of-ownership semantics are not required. I have had need recently of a pointer type that is associated to a static const object on construction (undestroyable via delete/[]), but that may change at runtime - basically a way to keep memory usage to a minimum, and prevent many copies of what is effectively a static object.
template<class T> class default_scoped_ptr {
static const T staticObj; // how to specify default arguments?
public:
T* get() ;
T* operator->();
}