#include "libscl.h" using namespace scl; using namespace std; struct dumb_val { bool positive; REAL log_den; dumb_val() : positive(false), log_den(-REAL_MAX) { } dumb_val(bool p, REAL l) : positive(p), log_den(l) { } // Constructs a dumb_val from REAL and converts REAL to dumb_val dumb_val(REAL l) : positive(true), log_den(l) {} // Converts dumb_val to REAL operator REAL() const { return this->log_den; } // Constructs a dumb_val from INTEGER but does not convert explicit dumb_val(INTEGER i) : positive(true), log_den(REAL(i)) {} dumb_val operator+=(dumb_val f) { positive = positive && f.positive; if (positive) log_den += f.log_den; else log_den = -REAL_MAX; return *this; } }; int main(int argc, char** argp, char** envp) { dumb_val dv(1); cout << dv << '\n'; dv = 5.0; cout << dv << '\n'; return 0; }