eco_string class

class eco_string
{
public:
  eco_string();
  eco_string(const eco_string& x);
  eco_string(const char *x);
  ~eco_string();

  eco_string& operator=(const eco_string& x);
  eco_string& operator=(const char* x);
  eco_string operator+(const char* y);
  eco_string& operator+=(const char* y); 
  eco_string operator+(const char y); 
  eco_string& operator+=(const char y); 
  eco_string operator+(const eco_string& y);
  eco_string& operator+=(const eco_string& y);
  operator char *() const;
  int length();
  void freeze(int x);
};

Basic string class, broadly compatible with the STL string class, but can be used in the classdesc generated code. The pointer returned by char * refers to an ordinary C string, but is no longer valid once the destructor is called. This behaviour can be altered calling freeze(1). Unlike the GNU string class, casting the string to a char * does not freeze the string.