Visual Studio 2017 STL 可视化工具失败了一个 std::map<MyIntrusivePtr, std::tuple<....> >
visual studio 2017 STL visualizer fails for one std::map<MyIntrusivePtr, std::tuple<....> >
所有Visual Studio Watch Windows显示的是:
std::_Tree<std::_TMap_traits<.....
所有其他数据显示正常 - 使用相同或相似的数据。
这是标题:
typedef std::set<expression::ptr> expressionSet;
//pairOfExpression2Usage m_sBool;
typedef boost::flyweights::flyweight<
expressionSet,
boost::flyweights::set_factory<>,
boost::flyweights::refcounted
> expressionSetFW;
typedef std::pair<expressionSetFW, expressionSetFW> pairOfExpressionSetFW;
// these are or-ed together
struct comparePairOfExpressionSetFW
{ bool operator()(
const pairOfExpressionSetFW &_r0,
const pairOfExpressionSetFW&_r1) const;
};
typedef std::set<
pairOfExpressionSetFW,
comparePairOfExpressionSetFW
> setOfPairOfExpressionSet;
struct compareSetOfPairOfExpressionSet
{ bool operator()(
const setOfPairOfExpressionSet &_r0,
const setOfPairOfExpressionSet&_r1) const;
};
typedef boost::flyweights::flyweight<
setOfPairOfExpressionSet,
boost::flyweights::set_factory<compareSetOfPairOfExpressionSet>,
boost::flyweights::refcounted
> setOfPairOfExpressionSetFW;
typedef std::tuple<std::size_t, double, setOfPairOfExpressionSetFW> exprData;
typedef std::map<expression::ptr, exprData> expr2Data;
我已经重新安装了可视化工具。做了
devenv.exe /resetsettings
将 typedefs 放入全局范围。 奇怪的是,所有其他内容(也使用 expression::p tr(作为索引或数据都显示正常。
我为解决这个问题所做的是复制转换进攻
std::map<>
变成一个
std::map<std::string, std::string>
只是为了能够在调试器中查看它。 这个问题也发生在其他std::map上。我真的很想知道,是什么触发了这种行为。
相关文章:
- 使用std::multimap迭代器创建std::list
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从持续时间构造std::chrono::system_clock::time_point
- std::具有相同基类的类的变体
- std::向量与传递值的动态数组
- 使用std::vector的OpenCL矩阵乘法
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- std::condition_variable::wait()如何评估给定的谓词
- 如何获取std::result_of函数的返回类型
- std::原子加载和存储都需要吗
- 将对象移动到std::shared_ptr
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- 是std :: set&lt; std :: future&gt;不可能存在
- 在修改列表后,std :: list&lt; t&gt; :: end()的值是否会更改
- 使用 std::vector<boost::shared_ptr<Base_Class>> 或 boost::p tr_vector 的性能注意事项是什么<Base>
- std::map<std::set, double> AND std:<long>map< std::p air<long, long>, double>
- 如何获取std::vector<DMatch>