How do I avoid small string optimization pitfalls with std::string?

C++, small string optimization, std::string pitfalls, string performance
This article discusses how to avoid pitfalls related to small string optimization when using std::string in C++.

// Example of small string optimization pitfalls in C++

#include 
#include 

void exampleFunction() {
    std::string str1 = "Hello, World!"; // Small string optimization applies
    std::string str2 = "C++ string management"; // Large string, optimization doesn't apply
    
    // Potential pitfall: str1 may use an internal buffer, while str2 allocates memory on the heap
    std::cout << "String 1: " << str1 << std::endl; 
    std::cout << "String 2: " << str2 << std::endl; 

    // When concatenating strings
    std::string str3 = str1 + str2; // This may cause reallocation and performance hit
    std::cout << "Concatenated String: " << str3 << std::endl;
}

int main() {
    exampleFunction();
    return 0;
}
    

C++ small string optimization std::string pitfalls string performance