首页 > 解决方案 > Microsoft-STL 和 GNU-STL 之间的差异

问题描述

如您所知,您不能在 C++ 中编写这样的代码:

struct Test
{
    Test _this;
};

但这很有可能

struct Test
{
    Test* _this;
};

那是我在编写以下代码时遇到此错误的时候

error: 'std::pair<_T1, _T2>::second' has incomplete type
       _T2 second
struct Test
{
    std::unordered_map<int, Test> dictionary;
};

我认为 msvc 的实现std::pair使用指针进行存储。

这是真的?如果不是,那么实现之间有什么区别,这是什么原因?

https://godbolt.org/z/vafxjW5vd

标签: c++gccvisual-c++unordered-mapstd-pair

解决方案


推荐阅读