Option(const char* v, OnChange = nullptr);
Option(const char* v, const std::vector<std::string>& variants, OnChange = nullptr);
Option(double v, int minv, int maxv, OnChange = nullptr);
- Option(const char* v, const char *cur, OnChange = nullptr);
Option& operator=(const std::string&);
void operator<<(const Option&);
o["Debug Log File"] << Option("", on_logger);
o["Contempt"] << Option(21, -100, 100);
- o["Analysis Contempt"] << Option("Both var Off var White var Black var Both", "Both");
+ o["Analysis Contempt"] << Option("Both", {"Both", "Off", "White", "Black"});
o["Threads"] << Option(1, 1, 512, on_threads);
o["Hash"] << Option(16, 1, MaxHashMB, on_hash_size);
o["Clear Hash"] << Option(on_clear_hash);
Option::Option(double v, int minv, int maxv, OnChange f) : type("spin"), min(minv), max(maxv), on_change(f)
{ defaultValue = currentValue = std::to_string(v); }
-Option::Option(const char* v, const char* cur, OnChange f) : type("combo"), min(0), max(0), on_change(f)
-{ defaultValue = v; currentValue = cur; }
-
Option::operator double() const {
assert(type == "check" || type == "spin");
return (type == "spin" ? stof(currentValue) : currentValue == "true");