1// (C) Copyright Gennadiy Rozental 2001.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5
6// See http://www.boost.org/libs/test for the library home page.
7//
8// File : $RCSfile$
9//
10// Version : $Revision$
11//
12// Description : trivial utility to cast to/from strings
13// ***************************************************************************
14
15#ifndef BOOST_TEST_UTILS_STRING_CAST_HPP
16#define BOOST_TEST_UTILS_STRING_CAST_HPP
17
18// Boost.Test
19#include <boost/test/utils/basic_cstring/basic_cstring.hpp>
20
21// STL
22#include <sstream>
23
24#include <boost/test/detail/suppress_warnings.hpp>
25
26//____________________________________________________________________________//
27
28namespace boost {
29namespace unit_test {
30namespace utils {
31
32// ************************************************************************** //
33// ************** string_cast ************** //
34// ************************************************************************** //
35
36template<typename T>
37inline std::string
38string_cast( T const& t )
39{
40 std::ostringstream buff;
41 buff << t;
42 return buff.str();
43}
44
45//____________________________________________________________________________//
46
47// ************************************************************************** //
48// ************** string_as ************** //
49// ************************************************************************** //
50
51template<typename T>
52inline bool
53string_as( const_string str, T& res )
54{
55 std::istringstream buff( std::string( str.begin(), str.end() ) );
56 buff >> res;
57
58 return !buff.fail() && buff.eof();
59}
60
61//____________________________________________________________________________//
62
63} // namespace utils
64} // namespace unit_test
65} // namespace boost
66
67#include <boost/test/detail/enable_warnings.hpp>
68
69#endif // BOOST_TEST_UTILS_STRING_CAST_HPP
70