Avoid using ios_base and streamsize, which are not defined in iosfwd.

[SVN r84636]
This commit is contained in:
Andrey Semashev 2013-06-04 18:41:39 +00:00
parent 9092b9277b
commit 6bb1ce9b7b

View File

@ -410,23 +410,23 @@ namespace boost {
charT fill_chars[chunk_size];
std::fill_n(fill_chars, static_cast< std::size_t >(chunk_size), os.fill());
for (; n >= chunk_size && os.good(); n -= chunk_size)
os.write(fill_chars, static_cast< std::streamsize >(chunk_size));
os.write(fill_chars, static_cast< std::size_t >(chunk_size));
if (n > 0 && os.good())
os.write(fill_chars, static_cast< std::streamsize >(n));
os.write(fill_chars, n);
}
template<class charT, class traits>
void insert_aligned(std::basic_ostream<charT, traits>& os, const basic_string_ref<charT,traits>& str) {
const std::size_t size = str.size();
const std::size_t alignment_size = static_cast< std::size_t >(os.width()) - size;
const bool align_left = (os.flags() & std::ios_base::adjustfield) == std::ios_base::left;
const bool align_left = (os.flags() & std::basic_ostream<charT, traits>::adjustfield) == std::basic_ostream<charT, traits>::left;
if (!align_left) {
detail::insert_fill_chars(os, alignment_size);
if (os.good())
os.write(str.data(), static_cast< std::streamsize >(size));
os.write(str.data(), size);
}
else {
os.write(str.data(), static_cast< std::streamsize >(size));
os.write(str.data(), size);
if (os.good())
detail::insert_fill_chars(os, alignment_size);
}
@ -442,7 +442,7 @@ namespace boost {
const std::size_t size = str.size();
const std::size_t w = static_cast< std::size_t >(os.width());
if (w <= size)
os.write(str.data(), static_cast< std::streamsize >(size));
os.write(str.data(), size);
else
detail::insert_aligned(os, str);
os.width(0);