This is my sample code:
#include <iostream>
#include <string>
using namespace std;
class MyClass
{
    string figName;
public:
    MyClass(const string& s)
    {
        figName = s;
    }
    const string& getName() const
    {
        return figName;
    }
};
ostream& operator<<(ostream& ausgabe, const MyClass& f)
{
    ausgabe << f.getName();
    return ausgabe;
}
int main()
{
    MyClass f1("Hello");
    cout << f1;
    return 0;
}
If I comment out #include <string> I don't get any compiler error, I guess because it's kind of included through #include <iostream>. If I "right-click --> Go to Definition" in Microsoft VS they both point to the same line in the xstring file:
typedef basic_string<char, char_traits<char>, allocator<char> >
    string;
But when I run my program, I get an exception error:
0x77846B6E (ntdll.dll) in OperatorString.exe: 0xC00000FD: Stack overflow (Parameter: 0x00000001, 0x01202FC4)
Any idea why I get a runtime error when commenting out #include <string>? I'm using VS 2013 Express.
 
     
     
    