Jak radzić sobie z ostrzeżeniem „destruktor czasu wyjścia” w clang?

W moim kodzie C ++ 11 dostaję ostrzeżenie o klanie „Deklaracja wymaga destruktora czasu wyjścia” w następującym przypadku:

static const std::map<int, const someStruct> mymap = {
    {1, {
        "A",
        "B",
        "C"
    }},
    {2, {
        "D",
        "E",
        "F"
    }}
};

O ile rozumiem, Google „destruktor czasu wyjścia” jest wymagany do zniszczenia main () i statyki w deterministyczny sposób, aby zapobiec awariom przy wyjściu z powodu „już wydanych zmiennych”. Czy to prawda? Czy ktoś może to lepiej wyjaśnić?

Plus: Co mogę z tym zrobić (nie chcę wyłączyć ostrzeżenia)? Powyższy kod jest używany tylko w kontekście jednego wątku.

Wygląda na to, że Chromium zajmuje się tymi sprawami; czy byłby to również właściwy sposób na mój przypadek?

#define CR_DEFINE_STATIC_LOCAL(type, name, arguments) \
  static type& name = *new type arguments

(Źródło:https://chromium.googlesource.com/chromium/src/+/32352ad08ee673a4d43e8593ce988b224f6482d3/base/basictypes.h)

questionAnswers(1)

yourAnswerToTheQuestion