You have to make it const if you return a single instance. Your const didn't make it const, the right way to do is in my comment.

Either non-const and returning a new instance each time, or ConstResponsePtr. I would prefer the latter, if modifications are meant the caller can still copy-construct to a non-const ResponsePtr.