diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-02-19 08:48:05 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-02-19 21:29:44 (GMT) |
commit | b1836ffb49bd7740dbd7c32bfad04d077e81ecb5 (patch) | |
tree | 9d0d9b3fad9c2bbd0192696d59e08477b8c22c10 /3rdParty/Boost/src/boost/format/free_funcs.hpp | |
parent | 2f6c2299c28c9bb03ee1437058a4c7071ff2ac3f (diff) | |
download | swift-contrib-b1836ffb49bd7740dbd7c32bfad04d077e81ecb5.zip swift-contrib-b1836ffb49bd7740dbd7c32bfad04d077e81ecb5.tar.bz2 |
Make Swift translatable.
Diffstat (limited to '3rdParty/Boost/src/boost/format/free_funcs.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/format/free_funcs.hpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/format/free_funcs.hpp b/3rdParty/Boost/src/boost/format/free_funcs.hpp new file mode 100644 index 0000000..3a51545 --- /dev/null +++ b/3rdParty/Boost/src/boost/format/free_funcs.hpp @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------- +// free_funcs.hpp : implementation of the free functions of boost::format +// ---------------------------------------------------------------------------- + +// Copyright Samuel Krempp 2003. Use, modification, and distribution are +// subject to the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/format for library home page + +// ---------------------------------------------------------------------------- + +#ifndef BOOST_FORMAT_FUNCS_HPP +#define BOOST_FORMAT_FUNCS_HPP + +#include <boost/format/format_class.hpp> +#include <boost/throw_exception.hpp> + +namespace boost { + + template<class Ch, class Tr, class Alloc> inline + std::basic_string<Ch, Tr, Alloc> str(const basic_format<Ch, Tr, Alloc>& f) { + // adds up all pieces of strings and converted items, and return the formatted string + return f.str(); + } + namespace io { + using ::boost::str; // keep compatibility with when it was defined in this N.S. + } // - namespace io + +#ifndef BOOST_NO_TEMPLATE_STD_STREAM + template<class Ch, class Tr, class Alloc> + std::basic_ostream<Ch, Tr> & + operator<<( std::basic_ostream<Ch, Tr> & os, + const basic_format<Ch, Tr, Alloc>& f) +#else + template<class Ch, class Tr, class Alloc> + std::ostream & + operator<<( std::ostream & os, + const basic_format<Ch, Tr, Alloc>& f) +#endif + // effect: "return os << str(f);" but we can do it faster + { + typedef boost::basic_format<Ch, Tr, Alloc> format_t; + if(f.items_.size()==0) + os << f.prefix_; + else { + if(f.cur_arg_ < f.num_args_) + if( f.exceptions() & io::too_few_args_bit ) + // not enough variables supplied + boost::throw_exception(io::too_few_args(f.cur_arg_, f.num_args_)); + if(f.style_ & format_t::special_needs) + os << f.str(); + else { + // else we dont have to count chars output, so we dump directly to os : + os << f.prefix_; + for(unsigned long i=0; i<f.items_.size(); ++i) { + const typename format_t::format_item_t& item = f.items_[i]; + os << item.res_; + os << item.appendix_; + } + } + } + f.dumped_=true; + return os; + } + +} // namespace boost + + +#endif // BOOST_FORMAT_FUNCS_HPP |