I don't think the signatures you've got for moveable_ptr are right. The move constructor needs to take a moveable_ptr, not a T. Oh, and you need something to prevent copying from lvalues, which you haven't shown there.
yaaang
Thanks, Dave — should've checked the blog post more carefully.