1
参照を必要とする関数に右辺値を渡すことができますか?C++、なぜlvalueを引数として左辺参照をとる関数に渡すことができます
void func(const std::string& x)
{
std::cout << x << std::endl;
}
int main()
{
std::string& x = "Test"; //fails to compile
func("Test"); //works
return 0;
}
私はfuncを呼び出す前に文字列変数を作成する必要があると考えました。
std::string tmp = "Test";
func(tmp);
参照を作成するのに必要なのとほとんど同じです。
std::string tmp = "Test";
std::string& x = tmp;
私はあなたが意味するものを得ることができません。 'std :: string&'と 'const std :: string&'は同じものではありません。 – songyuanyao