次のコード スニペットがあるとします。
#include <string>
#include <iostream>
int main()
{
std::string prefix("->"), middle(), suffix("<-");
std::cout << "Test: " << prefix << middle << suffix << std::endl;
return 0;
}
上級 C++ プログラマーは、がのデフォルト ctormiddle()
を呼び出しているのではなく、関数宣言であることがすぐにわかります。std::string
興味深いのは、gcc が次の出力を生成するのはなぜですか。
Test: ->1<-
Visual Studio のリンカー エラーとは対照的に? ここで何が起こっているか知っている人はいますか?