+ Options options;
+
+ // stringify() converts a value of type T to a std::string
+ template<typename T>
+ string stringify(const T& v) {
+
+ std::ostringstream ss;
+ ss << v;
+ return ss.str();
+ }
+
+ Option::Option() {} // To allow insertion in a std::map
+
+ Option::Option(const char* def, OptionType t)
+ : defaultValue(def), currentValue(def), type(t), idx(options.size()), minValue(0), maxValue(0) {}
+
+ Option::Option(bool def, OptionType t)
+ : defaultValue(stringify(def)), currentValue(stringify(def)), type(t), idx(options.size()), minValue(0), maxValue(0) {}
+
+ Option::Option(int def, int minv, int maxv)
+ : defaultValue(stringify(def)), currentValue(stringify(def)), type(SPIN), idx(options.size()), minValue(minv), maxValue(maxv) {}