gpt4 book ai didi

c++ - std::list 提示缺少第二个模板参数(分配器)

转载 作者:行者123 更新时间:2023-11-30 01:59:39 28 4
gpt4 key购买 nike

我目前正在尝试使用 Microsoft Visual Studio 2012 编译一个相当大的项目。我发现它在旧版本上编译得很好,但是对于这个版本,我在 std::list 的任何地方都会出错仅与一个模板参数一起使用。

error C2976: 'std::list' : too few template arguments

在所有其他项目中以及创建新项目时,我可以将 std::list 与默认分配器一起使用,所以我猜它可能必须对 MSVC 2012 做一些事情,但我我不知道那可能是什么。

最佳答案

创建 SSCCE 正是问题所在:这是一个巨大的项目,我无法在新项目中重现该问题。

定义_VARIADIC_MAX=10 后问题变得更加明显将错误消息变成了 error C2027: use of undefined type 'std::list'相反。

事实证明,map 包含在内, set和其他一些包含对 std::list 的前向声明的 header : 添加缺失的 #include <list>在几个地方修复了它!

我不确定为什么这会在其他平台和 MSVC10 上编译,但可能这些系统中的 STL header 的结构不同。

也感谢@kassak 的提示,它确实有帮助!

关于c++ - std::list 提示缺少第二个模板参数(分配器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15967804/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com