Como lidar com o aviso “destruidor de tempo de saída” no clang?

No meu código C ++ 11 eu recebo o aviso de clang "Declaração requer um destrutor de tempo de saída" no seguinte caso:

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

Tanto quanto eu entendo Google um "destruidor de tempo de saída" é necessário para destruir main () e estática de uma forma determinista para evitar falhas na saída devido a "variáveis ​​já lançadas". Isso esta certo? Alguém pode explicar melhor?

Plus: O que posso fazer sobre isso (não quero desativar o aviso)? O código acima é usado no contexto de apenas um thread.

Parece que esta é a maneira como o Chromium lida com esses casos; seria esse o caminho certo para o meu caso também?

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

(Fonte:https://chromium.googlesource.com/chromium/src/+/32352ad08ee673a4d43e8593ce988b224f6482d3/base/basictypes.h)

questionAnswers(1)

yourAnswerToTheQuestion