Warum kann das Erstellen einer statischen const std :: string eine Ausnahme verursachen?

Ich habe Zeichenfolgenkonstanten für Zeichenfolgen, die ich an mehreren Stellen in meiner App verwende:

namespace Common{
    static const std::string mystring = "IamAwesum";
}

Wenn Sie eine Frage zu etwas anderem stellen Was passiert mit einer .h-Datei, die während der Kompilierung nicht in einem Ziel enthalten ist?) hat ein anderer Benutzer folgenden Kommentar abgegeben:

eachten Sie, dass Ihre statische Zeichenfolge in diesem Fall global ist. Sie können also jederzeit eine Ausnahme bilden und sind nicht zu fangen. Ich rate Ihnen, die Funktion zu verwenden, die eine Referenz Ihrer Zeichenfolge zurückgibt. std :: string const & mystring {statisch std :: string const mystring = "IamAwesum"; return mystring} auf diese Weise wird dein Objekt nur konstruiert, wenn es gebraucht wird

Kann jemand erklären, warum die Verwendung von statischen Konstanten in der oben beschriebenen Weise Ausnahmen auslösen kann?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage