162f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow//===----------------------------------------------------------------------===//
262f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow//
362f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow//                     The LLVM Compiler Infrastructure
462f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow//
562f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow// This file is dual licensed under the MIT and the University of Illinois Open
662f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow// Source Licenses. See LICENSE.TXT for details.
762f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow//
862f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow//===----------------------------------------------------------------------===//
962f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
1062f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow// <iomanip>
1162f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
1262f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow// quoted
1362f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
1462f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#include <iomanip>
1562f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#include <sstream>
1662f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#include <string>
1762f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#include <cassert>
1862f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
1962f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#if _LIBCPP_STD_VER > 11
2062f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
2162f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clowvoid round_trip ( const char *p ) {
2262f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow    std::wstringstream ss;
2362f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow    ss << std::quoted(p);
2462f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow    std::string s;
2562f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow    ss >> std::quoted(s);
2662f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow    }
2762f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
2862f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
2962f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow
3062f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clowint main()
3162f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow{
3262f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow    round_trip ( "Hi Mom" );
3362f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow}
3462f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#else
3562f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#error
3662f34be0baf276c2b310db8bda0d358841ebab9aMarshall Clow#endif
37