我正在上一门C ++编程课程,是我大学提供的C ++类的2/2,我问教授我们正在使用哪个版本的C ++,他不知道。
我到处看看,发现了很多基于G ++的不同答案,这些答案不支持某些版本,也不支持某些版本的C ++,依此类推...
我的一般问题:
我正在使用哪个版本的C ++?
我可以使用什么版本的C ++?
我正在使用的C ++版本的优缺点?
我现在是否还要担心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;
}
答案 0 :(得分:1)
标准可能是以下其中一项:
...为简洁起见,省略了其他选项...
- c ++ 98
1998 ISO C ++标准及其修订版。
- gnu ++ 98
与-std = c ++ 98以及GNU扩展相同。这是C ++代码的默认设置。
对于有效版本的C ++,没有其他选择。
您的C ++默认版本为: C ++ 98(加上gnu扩展!无论什么意思)
您可能使用的C ++版本的选项是: C ++ 98(加上gnu扩展名)
答案 1 :(得分:1)
- 我正在使用哪个版本的C ++?
如果使用默认设置,则可能是 GNU C ++ 98 (注意:与(标准)ISO C ++ 98 不同)
- 我可以使用哪些版本的C ++?
gcc 4.2.4仅支持 ISO C ++ 98 和 GNU C ++ 98
- 我使用的C ++版本的优缺点?
第一个ISO标准化版本,顾名思义,于1998年左右发布。 此后已发布主要修订。
虽然年代久远且笨拙,但在行业中仍然存在。
以后的修订使该语言更加优雅和易于使用, 尽可能使用至少ISO C ++ 11(2011)(也称为现代C ++ )或更高版本的版本被认为是最佳做法。
- 我现在是否还要担心C ++的不同版本?
如果您上这堂课主要是学习语言而不是编程基础知识...
特别是如果您打算在课堂之外积极使用该语言...
是
但是由于要学习更高版本的详细信息可能具有挑战性,因此至少知道目前的主要区别是什么。
-
答案 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功能。