#include #include #include #include #include /* implement pretty_print() here */ int main() { // test simple int { std::ostringstream oss { }; pretty_print(oss, 5); assert(( oss.str() == "5" )); } { std::ostringstream oss { }; pretty_print(oss, 3.7); assert(( oss.str() == "3.7" )); } { std::ostringstream oss { }; int x { 17 }; pretty_print(oss, &x); assert(( oss.str() == "*(17)" )); } { std::ostringstream oss { }; std::string str { "hello" }; pretty_print(oss, str); assert(( oss.str() == "hello" )); } std::vector v { "abc", "defg", "hi", "j", "" }; { std::ostringstream oss { }; pretty_print(oss, v); assert(( oss.str() == "{ abc defg hi j }" )); } { std::vector> ptrs { { &v[0], &v[0] }, { &v[1], &v[2], &v[3] }, { } }; std::ostringstream oss { }; pretty_print(oss, ptrs); assert(( oss.str() == "{ { *(abc) *(abc) } { *(defg) *(hi) *(j) } { } }" )); } }