这会在使用指针映射时导致悬空指针吗

Is this causing a dangling pointer when using map of pointers

这个简单的代码会生成一条警告“烘焙指针的对象将在完整表达式结束时被销毁”。那是什么意思?使用get_map后对象entry可以不使用吗?还有为什么会出现这个警告

static std::map<std::string, int *> get_map() {
    static std::map<std::string,  int*> the_map;
    return the_map;
}

int main() {
    (...) 
    auto entry = get_map().find("HEY");
    (...)  use entry , is that wrong ?  
}  

Can I not use the object entry after I use get_map?

不,你不能。

static std::map<std::string, int *> get_map()

returns 地图的 副本

auto entry = get_map().find("HEY");

returns 指向副本的迭代器。分配 entry 后立即销毁副本(因为副本未保存在任何变量中,它仍然是临时的)。所以,entry不能安全使用。