class String
{
String();
String(const String& s);
String(const char *s);
~String();
operator char*();
String& operator = (const char *s);
String& operator = (const String& s);
String operator + (const char *s);
String operator + (const String& s);
String& operator += (const char *s);
String& operator += (const String& s);
};
// The following operator does not work, GCC says
// invalid operands of types `const char[5]' and `const char[10]' to binary `operator&'
String operator & (const char* a, const String& b) { /* concatenate them here */ }
int main()
{
String str = "test" & "something";
}