chiark / gitweb /
Provide "help". Print a prompt
[moebius.git] / parameter.hh
index 07b0137c0f6c3128732d33d40ace520ea2a13fe7..b426e3746560af8aea0390c40008596a57ee6654 100644 (file)
@@ -13,7 +13,8 @@ class AnyParameter {
 protected:
   const char *name;
   const char *description;
-  virtual void rangecheck() =0;
+  void printvalue();
+  virtual void rangecheckprint() =0;
 public:
   AnyParameter(const char *n, const char *d);
   virtual void operator ++() =0;
@@ -21,17 +22,18 @@ public:
   virtual void operator =(double) =0;
   static AnyParameter *find(const char *n);
   static void list();
+  static void help();
 };
 
 template<class T> class Parameter : AnyParameter {
   T value, delta, min, max;
-  void rangecheck();
+  void rangecheckprint();
 public:
   Parameter(const char *n, const char *d, T i, T de, T mi, T ma);
   operator T (){ return value; }
-  void operator ++(){ value+= delta; rangecheck(); }
-  void operator --(){ value-= delta; rangecheck(); }
-  void operator =(double v) { value= (T)v; rangecheck(); }
+  void operator ++(){ value+= delta; rangecheckprint(); }
+  void operator --(){ value-= delta; rangecheckprint(); }
+  void operator =(double v) { value= (T)v; rangecheckprint(); }
 };
 
 template<class T> Parameter<T>::Parameter
@@ -40,8 +42,7 @@ template<class T> Parameter<T>::Parameter
   value=i; delta=de; min=mi; max=ma;
 }
 
-template<class T> void Parameter<T>::rangecheck() {
-  cerr << name << " ";
+template<class T> void Parameter<T>::rangecheckprint() {
   if (value<min) {
     value= min;  cerr << "underflowed; ";
   } else if (value>max) {