¿Cómo lidiar con la advertencia del "destructor de tiempo de salida" en clang?

En mi código C ++ 11, aparece el aviso de advertencia "La declaración requiere un destructor de tiempo de salida" en el siguiente caso:

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

Según tengo entendido, se requiere un "destructor de tiempo de salida" para destruir main () y statics de una manera determinista para evitar bloqueos en la salida debido a "variables ya publicadas". ¿Está bien? ¿Alguien puede explicarlo mejor?

Más: ¿Qué puedo hacer al respecto (no deseo desactivar la advertencia)? El código anterior se usa dentro del contexto de un solo hilo.

Parece que esta es la forma en que Chromium trata estos casos; ¿Sería ese también el camino correcto para mi caso?

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

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta