Incomplete smart pointer