Operators with std::string
[libacl.git] / test / string_cat.cpp
index 71eff4d..b040171 100644 (file)
@@ -18,6 +18,7 @@ int main()
    String s2("def");
    String s3, s4;
 
+   //  String + String
    s3 = s1 + s2;
    std::cout << s1 << " + " << s2 << " = " << s3 << "\n";
    assert(s3 == "abcdef");
@@ -25,11 +26,52 @@ int main()
    std::cout << s2 << " + " << s1 << " = " << s4 << "\n";
    assert(s4 == "defabc");
 
+   //  String + char*
+   s3 = s1 + "xyz";
+   std::cout << s1 << " + \"xyz\" = " << s3 << "\n";
+   assert(s3 == "abcxyz");
+
+   //  char* + String
+   s4 = "klm" + s2;
+   std::cout << "\"klm\" + " << s2 << " = " << s4 << "\n";
+   assert(s4 == "klmdef");
+
+   //  String + std::string
+   std::string str1("xyz");
+   s3 = s1 + str1;
+   std::cout << s1 << " + " << str1 << " = " << s3 << "\n";
+   assert(s3 == "abcxyz");
+
+   //  std::string + String
+   std::string str2("klm");
+   s4 = str2 + s2;
+   std::cout << str2 << " + " << s2 << " = " << s4 << "\n";
+   assert(s4 == "klmdef");
+
+   //  += String
+
    s3 = s1;
    s3 += s2;
    std::cout << s1 << " += " << s2 << " = " << s3 << "\n";
    assert(s3 == "abcdef");
 
+   // += char *
+
+   String s5("abcd");
+   std::cout << s5 << " += \"xyz\" = ";
+   s5 += "xyz";
+   std::cout << s5 << "\n";
+   assert(s5 == "abcdxyz");
+
+   //  += std::string
+
+   String s6("ghij");
+   std::string str6("opqr");
+   std::cout << s6 << " += " << str6 << " = ";
+   s6 += str6;
+   std::cout << s6 << "\n";
+   assert(s6 == "ghijopqr");
+
    return 0;
 }