1*59599516SKenneth E. Jansen #ifndef H_ValType 2*59599516SKenneth E. Jansen #define H_ValType 3*59599516SKenneth E. Jansen 4*59599516SKenneth E. Jansen #include <iostream> 5*59599516SKenneth E. Jansen #include <string> 6*59599516SKenneth E. Jansen 7*59599516SKenneth E. Jansen using namespace std; 8*59599516SKenneth E. Jansen 9*59599516SKenneth E. Jansen class ValType { 10*59599516SKenneth E. Jansen public: ValType(const string & s)11*59599516SKenneth E. Jansen ValType(const string & s) 12*59599516SKenneth E. Jansen : str(s) 13*59599516SKenneth E. Jansen { used = false; } 14*59599516SKenneth E. Jansen ~ValType()15*59599516SKenneth E. Jansen ~ValType() 16*59599516SKenneth E. Jansen { 17*59599516SKenneth E. Jansen if (!used) 18*59599516SKenneth E. Jansen cerr << "error: ambiguous return type" << endl; 19*59599516SKenneth E. Jansen } 20*59599516SKenneth E. Jansen 21*59599516SKenneth E. Jansen // conversion operators 22*59599516SKenneth E. Jansen operator double(); 23*59599516SKenneth E. Jansen operator double*(); 24*59599516SKenneth E. Jansen operator vector<double>(); 25*59599516SKenneth E. Jansen operator vector<int>(); 26*59599516SKenneth E. Jansen operator int(); 27*59599516SKenneth E. Jansen operator string(); 28*59599516SKenneth E. Jansen 29*59599516SKenneth E. Jansen private: 30*59599516SKenneth E. Jansen bool used; 31*59599516SKenneth E. Jansen string str; 32*59599516SKenneth E. Jansen 33*59599516SKenneth E. Jansen int get_int(string str); 34*59599516SKenneth E. Jansen double get_double(string str); 35*59599516SKenneth E. Jansen double *get_double_array(string str); 36*59599516SKenneth E. Jansen vector<double> get_vector(string str); 37*59599516SKenneth E. Jansen vector<int> get_ivector(string str); 38*59599516SKenneth E. Jansen string get_string(string str); 39*59599516SKenneth E. Jansen 40*59599516SKenneth E. Jansen }; 41*59599516SKenneth E. Jansen 42*59599516SKenneth E. Jansen 43*59599516SKenneth E. Jansen #endif 44*59599516SKenneth E. Jansen 45