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: 
Unfortunately, the answer is no according to N3290.

Table 63 Page 643 says:

* `data()` a non-null pointer that is copyable and can have 0 added to it
* `size()` 0
* `capacity()` an unspecified value

The table is identical for C++03.
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.