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
std::string
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/