警告:支持对象的指针将在std :: pair的全表达式结束时被破坏

问题描述

下面的代码给出了悬空的指针错误。

    std::vector<std::pair<std::string,int>> c;
    for (auto& b : c) {
        const auto& [s,i] = b;
        std::string_view v = s.substr(i);
        std::cout << v;
    }

我认为b拥有对std::pair<std::string,int>的引用,因此s应该是对对对象中字符串的引用。为什么这会导致悬空指针错误?我在这里想念什么? Godbolt链接:https://godbolt.org/z/4zMvbr

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)