Manipulators de fluxo de saída com um argumento (int ou long)
A biblioteca de classe iostream fornece um conjunto de macros para a criação de manipulators parametrizadas.Manipulators com um único int ou long argumento são um caso especial.Para criar um manipulator de fluxo de saída que aceita um único int ou long argumento (como setw), você deve usar a macro _Smanip, que é definida em <iomanip>.Este exemplo define um fillblank manipulator que insere um número especificado de espaços em branco no fluxo de:
Exemplo
// output_stream_manip.cpp
// compile with: /GR /EHsc
#include <iostream>
#include <iomanip>
using namespace std;
void fb( ios_base& os, int l )
{
ostream *pos = dynamic_cast<ostream*>(&os);
if (pos)
{
for( int i=0; i < l; i++ )
(*pos) << ' ';
};
}
_Smanip<int>
__cdecl fillblank(int no)
{
return (_Smanip<int>(&fb, no));
}
int main( )
{
cout << "10 blanks follow" << fillblank( 10 ) << ".\n";
}