【发布时间】:2019-03-23 14:46:22
【问题描述】:
我为在 gcc 中编译和运行的赋值编写了一些代码,但在 Visual Studio 中编译时抛出了 C2027 'use of undefined type'。以下是导致错误的行为:
template<class Object>
class Foo{
public:
[....]
private:
[....]
std::stack<Foo> bar;//error c2027 from instantiation with incomplete type
};
我了解错误发生的原因,我一直在努力弄清楚如何在不大量更改代码结构的情况下解决错误,或者是否有可能。在这种特殊情况下,该类使用其自身的内部数据结构来存储它可以回滚到的先前状态的副本。
【问题讨论】:
-
@user463035818 哼。 Clang 拒绝代码,所以我要说这是一个 gcc 扩展,实际上不是有效的标准 C++ 代码。
标签: c++ visual-studio templates gcc