Im trying to migrate code from another language that allows concatonation of strings with the '+' operator.
//defintion
void print(std::string s) {
std::cout << s;
}
//call
print("Foo " + "Bar");
The issue I'm having is that c++ sees "Foo " and "Bar" as const char* and cannot add them, is there any way to fix this. I have tried including the string library to see if it would change them automatically but that didnt seem to work.
In c++14 and later:
using namespace std::literals;
print("Foo "s + "Bar");
In c++11:
std::string operator "" _s(const char* str, std::size_t len) {
return std::string(str, len);
}
print("Foo "_s + "Bar");
Or, in all versions:
print(std::string("Foo ") + "Bar");
The easiest solution for the case of 2 string literals:
print("Foo " "Bar");
Otherwise:
print(std::string("Foo ") + "Bar");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With