我正在使用哪个版本的C ++?

时间:2020-03-31 17:17:07

标签: c++ eclipse g++

我正在上一门C ++编程课程,是我大学提供的C ++类的2/2,我问教授我们正在使用哪个版本的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

OS: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 个答案:

答案 0 :(得分:1)

根据gcc 4.2.4 manual

标准可能是以下其中一项:
...为简洁起见,省略了其他选项...
- c ++ 98
1998 ISO C ++标准及其修订版。
- gnu ++ 98
与-std = c ++ 98以及GNU扩展相同。这是C ++代码的默认设置。

对于有效版本的C ++,没有其他选择。

您的C ++默认版本为: C ++ 98(加上gnu扩展!无论什么意思)

您可能使用的C ++版本的选项是: C ++ 98(加上gnu扩展名)

答案 1 :(得分:1)

  1. 我正在使用哪个版本的C ++?

如果使用默认设置,则可能是 GNU C ++ 98 (注意:与(标准)ISO C ++ 98 不同)

  1. 我可以使用哪些版本的C ++?

gcc 4.2.4仅支持 ISO C ++ 98 GNU C ++ 98

  1. 我使用的C ++版本的优缺点?

第一个ISO标准化版本,顾名思义,于1998年左右发布。 此后已发布主要修订。

虽然年代久远且笨拙,但在行业中仍然存在。

以后的修订使该语言更加优雅和易于使用, 尽可能使用至少ISO C ++ 11(2011)(也称为现代C ++ )或更高版本的版本被认为是最佳做法。

  1. 我现在是否还要担心C ++的不同版本?

如果您上这堂课主要是学习语言而不是编程基础知识...

特别是如果您打算在课堂之外积极使用该语言...

但是由于要学习更高版本的详细信息可能具有挑战性,因此至少知道目前的主要区别是什么。

-

参考:gcc 4.2.4 manual

答案 2 :(得分:1)

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。这对于语言规范应该是好的。根据{{​​3}}最多包括c ++ 17,以及一些选定的c ++ 20功能。