Oppure

Loading
03/09/11 15:06
Pitagora
Salve, come posso creare operatori di stream parametrici?

ad esempio:

 std::cout << pause( " premere invio per continuare ..." );
aaa
03/09/11 15:50
HeDo
non credo che la cosa si possa fare in questo modo, se ci pensi un secondo capirai che è un controsenso la riga che hai scritto :)
aaa
04/09/11 16:40
lumo
Toericamente puoi fare una cosa del genere, anche se non ha molto senso...


#include <iostream>
#include <string>

using namespace std;

namespace Utils
{
  struct Pauser
  {
    Pauser operator () ( const string& msg )
    {
	cout << msg;
	return *this;
    }
  } pause;
}

istream& operator >> ( istream& in, Utils::Pauser )
{
    in.sync();
    in.get();
}

int main()
{
    using Utils::pause;
  
    cin >> pause("Enter a key..");
    cin >> pause; // no message
    return 0;
} 


E' molto meglio scrivere una funzione pause e usare quella, perchè tanto non c'è bisogno di specificare lo stream su cui va a leggere/scrivere.
aaa