Originally Posted by
sudar
Also, do all objects carry a "value"?
In the case of streams that works via a conversion operator.
something like this
Code:
#include <iostream>
using namespace std;
class xstream {
public:
xstream() : flag(0) { }
void set_error() { flag = 1; }
operator const void *() { return flag ? 0 : this; }
private:
int flag;
};
int main() {
xstream m;
if ( m )
cout << "ok." << endl;
else
cout << "error." << endl;
m.set_error(); // simulate error
if ( m )
cout << "ok." << endl;
else
cout << "error." << endl;
}
Kurt