我用自制软件安装了“gcc 4.9”,现在我想确定这是默认的“gcc”(而不是clang)。所以我输入了以下命令,并得到了以下输出。它们对我来说毫无意义。gcc -v和gcc-4.9 -v不应该有相同的输出吗?为什么它们是不同的?对我来说,我似乎不理解which是如何工作的,也不知道符号链接是如何工作的,这让我很惊讶,因为我以为我理解了。$ which gcc$ ls -l $(which gcc</
下面的代码struct Base static const int a = c + 5;struct Derived : Base<c> static const int b = a + 5;..。由于a was not declared in this scope,编译失败。显式地指定Base<c>::a是可行的,但从逻辑上讲,这不是必需的,因为我们是从Base<c>派生的。这是有意为之的行为(以及为什么),还是我错过了什么?