Mat*_*ggs 5 c++ xcode vector lldb xcode9
在大多数情况下,在调试时,如果我有一个向量(在Xcode 9中),我会看到一个表示向量中值的索引列表.
其他时候,我得到这个无益的代表:
我无法弄清楚什么条件会导致LLDB以不合需要的方式显示向量.
问题
导致不良行为的原因是什么?可以在不重写代码的情况下修复吗?这是LLDB中的错误吗?
这是一个简短的代码示例,可以再现不需要的行为:
#include <iostream>
#include <vector>
std::vector<int> createVector()
{
std::vector<int> v = { 1, 2, 3 };
return v;
}
int main(int argc, const char * argv[])
{
const auto& v = createVector();
std::cout << v.front() << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
以下是Xcode项目的链接:http://s000.tinyupload.com/?file_id =
21020556485232357417
这是 std::vector 数据摘要和格式化程序如何处理引用变量的已知错误。请注意,在expr v表达式解析器中,实际上认为 v 是一个直向量,而不是对向量的引用......这就是打印起作用的原因。
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |