是否有一个列表,哪个编译器支持C ++标准的哪一部分?

时间:2011-06-09 05:39:37

标签: c++ visual-studio-2010 standards vc6

我现在对c ++的标准感到困惑,

我知道现在有三个版本:c ++ 98,c ++ 03和c ++ 0x;

据说VC6是在C ++标准化之前编写的,所以我不介意它是否不支持标准,但是我发现vs2010甚至不支持C ++ 03,这里是代码:

class A
{
    class B { };
    friend class X;
};

class X
{
    A::B mx;
    class Y : A::B
    {
        A::B my;// This should be wrong in C++98 and C++03
                // But it works in VS2010
    };
};

编译失败后,我想也许vs2010支持c ++ 0x,所以我将代码更改为:

class A
{
    class B { };
    friend class X;
};

class X : A::B // This should be right in c++0x, but it is an error in vs2010
{
    A::B mx;
    class Y : A::B
    {
        A::B my;
    };
};

所以这让我非常困惑,我在这里问:哪个版本的c ++标准是vs2010支持,如果它不完全支持标准,是否有一个列表告诉我哪个编译器支持哪个标准?< / p>

2 个答案:

答案 0 :(得分:1)

C ++ 98不再作为标准存在。它被C ++ 03取代。其次,由于C ++ 11的出现时间,VS2010支持C ++ 03和C ++ 11之间的一种中途停留。

不仅如此,每个实施都有瑕疵。你认为它不支持C ++ 03,因为它没有export吗?

答案 1 :(得分:1)

您似乎对MS VC ++版本特别感兴趣...请参阅http://msdn.microsoft.com/en-us/library/x84h5b78.aspx - 更改“其他版本”下拉组合框中的版本号以查看各种版本。