xo-tokenizer2/example/ex4/ex4.cpp

53 lines
1,005 B
C++

/* @file ex4.cpp */
#include "indentlog/scope.hpp"
using namespace xo;
class Quadratic {
public:
Quadratic(double a, double b, double c) : a_{a}, b_{b}, c_{c} {}
double operator() (double x) const {
scope log(XO_ENTER0(info), tag("a", a_), xtag("b", b_), xtag("c", c_), xtag("x", x));
double retval = (a_ * x * x) + (b_ * x) + c_;
log.end_scope("<-", xtag("retval", retval));
return retval;
}
private:
double a_ = 0.0;;
double b_ = 0.0;
double c_ = 0.0;
};
int
main(int argc, char ** argv) {
//log_config::style = FS_Pretty;
log_config::style = FS_Streamlined;
log_config::min_log_level = log_level::info;
scope log(XO_ENTER0(info));
Quadratic quadratic(2.0, -5.0, 7.0);
double x = 3.0;
double r = 0.0;
log_config::style = FS_Pretty;
r = quadratic(x);
log_config::style = FS_Streamlined;
r = quadratic(x);
log_config::style = FS_Simple;
r = quadratic(x);
}
/* end ex4.cpp */