Areas for discussion.

Just to emphasise the point, who can see the error in the operator overloading example?

Serial << "GPS unit #" << gpsno << " reports lat/long of " << lat << "/" << long;

The IDE highlights keywords so the bug is easy to spot:

#include <Streaming.h>

int gpsno, lat;

void setup()
{
Serial.begin(9600);
Serial << "GPS unit #" << gpsno << " reports lat/long of " << lat << "/" << long;

}

void loop()
{}

I would observe that this has been referenced several times in this thread, and presumably read, and no one has raised this concern. I think it suggests that it is not easy to understand.

As I mentioned in my earlier post, I do think that the C++ syntax looks a little scary to beginers. I am not clear what concern you feel has not been raised?

I hope this post doesn't come across as argumentative, I suspect we are in agreement that a simpler way to format output would be most welcome.