1
0
forked from boostorg/core

Use os << "" for the padding instead of os << p[0]

This commit is contained in:
Peter Dimov
2021-10-09 19:31:41 +03:00
parent ddf9b5087b
commit c43a172ded

View File

@ -1153,32 +1153,25 @@ template<class Ch> std::basic_ostream<Ch>& operator<<( std::basic_ostream<Ch>& o
Ch const* p = str.data();
std::size_t n = str.size();
if( n == 0 )
std::size_t m = os.width();
if( n >= m )
{
os.write( p, n );
}
else if( ( os.flags() & std::ios_base::adjustfield ) == std::ios_base::left )
{
os.write( p, n );
os.width( m - n );
os << "";
}
else
{
std::size_t m = os.width();
os.width( m - n );
os << "";
if( n >= m )
{
os.write( p, n );
}
else if( ( os.flags() & std::ios_base::adjustfield ) == std::ios_base::left )
{
os.write( p, n - 1 );
os.width( m - n + 1 );
os << p[ n-1 ];
}
else
{
os.width( m - n + 1 );
os << p[0];
os.write( p + 1, n - 1 );
}
os.write( p, n );
}
os.width( 0 );