Какую версию C ++ я использую? - PullRequest
1 голос
/ 31 марта 2020

Я беру урок программирования C ++, 2/2 классов C ++, которые предлагает мой университет, и я спросил своего профессора, какую версию C ++ мы используем, и он не знает.

Я посмотрел вокруг здесь и нашел кучу разных ответов, основанных на G ++, не поддерживающих некоторые версии и поддерживающих некоторые из этой версии C ++, и т. д. -...

Мой общий вопрос:

  1. Какую версию C ++ я использую?

  2. Какие версии C ++ можно использовать?

  3. Преимущества и недостатки используемой версии C ++?

  4. Стоит ли мне беспокоиться о различных версиях C ++ прямо сейчас?

Вывод для g++ --version:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Моя текущая версия G ++ Компилятор: 4.2.1

IDE: Eclipse C ++ 2020-03

ОС: MacOSX MoJave

Фрагмент кода, который мы используем для класса:

void find(int IDs[], string posts[], int size)
{
    int search = -9999;
    bool found = false;
    cout << "Enter user ID: " << endl;
    cin >> search;

    while (search < 0)
    {
        cout << "In-correct ID Type" << endl;
        cout << "Enter user ID: " << endl;
        cin >> search;
    }
    cout << "Posts by user " << search << ":" << endl;
    cout << endl;
    for (int i = 0; i < size; i++)
    {
        if (IDs[i] == search)
        {
            cout << *(posts + i);
            found = true;
        }
    }
    if (found == false)
    {
        cout << "N/A posts for user " << search << endl;
    }
    cout << endl;
}

Ответы [ 3 ]

1 голос
/ 31 марта 2020
  1. Какую версию C ++ я использую?

Если вы используете настройки по умолчанию, вероятно, GNU C ++ 98 (ПРИМЕЧАНИЕ: Не то же самое, что (стандарт) ISO C ++ 98 )

Какие версии C ++ можно использовать?

g cc 4.2.4 поддерживает только ISO C ++ 98 и GNU C ++ 98

Преимущества и недостатки используемой версии C ++?

Первая стандартизированная версия ISO, опубликованная в 1998 году, как следует из названия. С тех пор были выпущены основные ревизии.

Очень старые и неуклюжие, но все еще широко распространенные в отрасли.

Более поздние ревизии делают язык значительно более элегантным и простым в использовании, также используя по крайней мере ISO C ++ 11 (2011) (также называемый Modern C ++ ) или более поздние редакции, если это возможно, считается наилучшей практикой.

Стоит ли мне сейчас беспокоиться о различных версиях C ++?

Если вы посещали занятия, чтобы в основном изучать язык, а не основы программирования ...

и особенно, если вы планируете активно использовать язык вне класса ...

ДА

, но, поскольку изучение деталей более поздних пересмотров "может быть сложным, по крайней мере, знайте, каковы основные различия на данный момент.

-

Ссылки: g cc 4.2.4 руководство

1 голос
/ 31 марта 2020

Из вывода g++ --version ...

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

кажется, что вы на самом деле используете clang++ 10.0.1. Это должно быть хорошо для языковых спецификаций. до и включая c ++ 17 в соответствии с этой таблицей , а также несколько выбранных функций c ++ 20.

1 голос
/ 31 марта 2020

В соответствии с g cc 4.2.4 руководством :

стандарт может быть одним из:
... другие параметры для краткости опущены ...
- c ++ 98
Стандарт ISO C ++ 1998 года плюс поправки.
- GNU ++ 98
То же самое as -std = c ++ 98 плюс расширения GNU. Это значение по умолчанию для кода C ++.

Другие опции для действительной версии C ++ не указаны.

Ваша версия C ++ по умолчанию: C ++ 98 (плюс расширения GNU! это означает)

Возможны следующие варианты версий C ++: C ++ 98 (плюс расширения GNU)

...