visual studio 2017 STL visualizer失败了一个std :: map <myintrusiveptr,std :: tuple <.... =“”>&gt;

时间:2018-05-31 17:28:35

标签: c++ visual-studio visual-studio-2017

所有可视工作室观察窗口都显示为:

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

将typedef放入全局范围。 奇怪的是,所有其他的东西(也使用表达式:: ptr)作为索引或数据显示正常。

1 个答案:

答案 0 :(得分:0)

我为解决该问题所做的就是复制转换进攻内容

std::map<> 

变成

std::map<std::string, std::string>

只是为了能够在调试器中查看它。 其他std :: map也可能发生此问题。我真的很想知道,是什么触发了这种行为。