Как бороться с предупреждением о выходе из деструктора в clang?

В моем коде C ++ 11 я получаю предупреждение "Декларация требует деструктора времени выхода в следующем случае:

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

Насколько я понимаю гугл апВремя выхода деструктора " требуется для уничтожения main () и статики детерминированным способом, чтобы предотвратить сбои при выходе из-зауже выпущенные переменные ", Это правильно? Может кто-нибудь объяснить это лучше?

Плюс: что я могу с этим сделать (я нене хотите отключить предупреждение)? Приведенный выше код используется только в контексте одного потока.

Похоже, именно так Chromium справляется с этими случаями; будет ли это правильным способом для моего случая?

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

(Источник:https://chromium.googlesource.com/chromium/src/+/32352ad08ee673a4d43e8593ce988b224f6482d3/base/basictypes.h)

Ответы на вопрос(1)

Ваш ответ на вопрос