# if !defined(BENOIT__HEADER) # define BENOIT__HEADER # include # include # include # include # include using namespace std::literals::string_literals; class benoit { public: [[noreturn]] benoit(int const argc,char const * * argv) noexcept; [[noreturn]] ~benoit() noexcept; private: class t { public: enum class imgfmt { jpeg, png, ppm, webp, }; class pos { public: boost::multiprecision::mpfr_float x = 0x0; boost::multiprecision::mpfr_float y = 0x0; pos(boost::multiprecision::mpfr_float x = 0x0,boost::multiprecision::mpfr_float y = 0x0); }; }; benoit::t::imgfmt imgfmt = benoit::t::imgfmt::ppm; benoit::t::pos pos; bool constexpr static debug = # if defined(NDEBUG) false; # else true; # endif std::string outimg = "image"; long resx = 0x2000; long resy = 0x2000; long double zoom = 0x1p0; long long ver = 0x3; unsigned long long maxiter = 0x400; std::vector plotmandelbrot(); void arghandl(int const & argc,char const * * & argv); [[noreturn]] void exit(int code,std::string msg = ""s) noexcept; void notiffunc(std::string const callfuncname); void print(char const * msg,bool stderr = false); void print(std::string msg,bool stderr = false); }; # endif