Question: When I create a `std::string` using the default constructor, is ANY memory allocated on the heap? I'm hoping the answer does not depend on the implementation and is standardized. Consider the following:

```
std::string myString;

```

Answer: 
It is implementation dependent. Some string implementations use a small amount of automatically allocated storage for small strings, and then dynamically allocate more for larger strings.
It depends on the compiler. Take a look here, there is a good explanation:

<http://www.learncpp.com/cpp-tutorial/17-3-stdstring-length-and-capacity/>