gpt4 book ai didi

c++ - 源代码在 GCC 中编译,但在 Visual Studio 中不编译

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:40 24 4
gpt4 key购买 nike

这在 GCC 4.6 上编译但不与 VS2010 sp1:
是我的错还是VS又搞砸了?

 #include "stdafx.h"

enum Attribute{red_att,black_att,key_att,value_att};

struct Color{};



template<enum Attribute>
struct Tag_Value;

template<>
struct Tag_Value<red_att>
{
typedef Color type;
};

int main()
{

return 0;
}

错误:
错误 C2599:“属性”:不允许前向声明枚举类型

error C2440: 'specialization' : 无法从 'Attribute' 转换为 'Attribute'

最佳答案

假设一个有效且不冲突的 stdafx.h,它看起来像有效代码。

你会发现人们告诉你,在 C++ 中,你不必说 enum Namestruct Name 如果没有隐藏 Name(就像一个名为 Name 的函数)。在 C 中你必须这样做,因为 C 有一个不同的查找名称的概念。但在 C++ 中,要引用结构、类、 union 或枚举,您可以只使用 Name。所以你可以使用 Attribute 而不是 enum Attribute。但是命名类型的不同选择不应该让编译器拒绝你的代码。

关于c++ - 源代码在 GCC 中编译,但在 Visual Studio 中不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781237/

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