2 // Boost general library 'format' ---------------------------
3 // See http://www.boost.org for updates, documentation, and revision history.
5 // (C) Samuel Krempp 2001
6 // Permission to copy, use, modify, sell and
7 // distribute this software is granted provided this copyright notice appears
8 // in all copies. This software is provided "as is" without express or implied
9 // warranty, and with no claim as to its suitability for any purpose.
11 // ideas taken from RĂ¼diger Loos's format class
12 // and Karl Nelson's ofstream (also took its parsing code as basis for printf parsing)
14 // ------------------------------------------------------------------------------
15 // format_fwd.hpp : forward declarations, for primary header format.hpp
16 // ------------------------------------------------------------------------------
18 #ifndef BOOST_FORMAT_FWD_HPP
19 #define BOOST_FORMAT_FWD_HPP
24 #include <boost/format/detail/config_macros.hpp>
29 #if !( BOOST_WORKAROUND(__GNUC__, <3) && defined(__STL_CONFIG_H) )
30 class Tr = BOOST_IO_STD char_traits<Ch> >
32 class Tr = std::string_char_traits<Ch> >
36 typedef basic_format<char > format;
39 #if !defined(BOOST_NO_STD_WSTRING) && !defined(BOOST_NO_STD_WSTREAMBUF) \
40 && !defined(BOOST_NO_STRINGSTREAM) && !defined(BOOST_FORMAT_IGNORE_STRINGSTREAM)
41 //we use either sstream or strstream, and strstream doesnt support wchar
42 typedef basic_format<wchar_t > wformat;
45 template<class Ch, class Tr>
46 std::basic_string<Ch, Tr> str(const basic_format<Ch, Tr>& ) ;
49 using ::boost::str; // it used to bed define in boost::io, keep compatibility
51 enum format_error_bits { bad_format_string_bit = 1,
52 too_few_args_bit = 2, too_many_args_bit = 4,
54 all_error_bits = 255, no_error_bits=0 };
59 template< class Ch, class Tr>
60 BOOST_IO_STD basic_ostream<Ch, Tr>&
61 operator<<( BOOST_IO_STD basic_ostream<Ch, Tr>&, const basic_format<Ch, Tr>&);
66 #endif // BOOST_FORMAT_FWD_HPP