Listing 6

class conservative_exception
{
public:
    conservative_exception(int what, char const* file=0, int line=0);
    int what() const { return what_; }
    int line() const { return line_; }
    char const* file() const { return file_0 !=0 ? file_:0; }
private:
    int what_;
    int line_;
    char file_[32];
};