Есть ли список того, какой компилятор поддерживает какую часть стандарта C ++? - PullRequest
0 голосов
/ 09 июня 2011

Я просто запутался в стандартах 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, если она не полностью поддерживает стандарт, есть ли список, который говорит мне, какой компилятор поддерживает какой стандарт?

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Кажется, вы особенно заинтересованы в версиях MS VC ++ ... см. http://msdn.microsoft.com/en-us/library/x84h5b78.aspx - измените номер версии в раскрывающемся списке "Другие версии", чтобы увидеть различные версии.

1 голос
/ 09 июня 2011

C ++ 98 больше не является стандартом.Это было заменено C ++ 03.Во-вторых, благодаря тому, что выход C ++ 11 был рассчитан по времени, VS2010 поддерживает своего рода промежуточный путь между C ++ 03 и C ++ 11.

Более того, каждая реализация имеетбородавки.Вы думаете, что он не поддерживает C ++ 03, потому что у него нет export?

...