Как бороться с предупреждением о выходе из деструктора в 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