extend to_string to support smart pointer and stl container which stored smart pointer.