C++で一時変数を動的に割り当てることはできますか?
私はそのような何かをしたい:C++で一時変数を動的に割り当てることはできますか?
#include <iostream>
#include <string>
std::string* foo()
{
std::string ret("foo");
return new std::string(ret);
}
int main()
{
std::string *str = foo();
std::cout << *str << std::endl;
return 0;
}
このコードは動作しますが、問題は、私はポインタとしてそれを返すために、他の文字列を作成する必要があります。他のオブジェクトを再作成せずにヒープ内に一時変数/ローカル変数を入れる方法はありますか?ここで
私はそれを行うだろうかの実例である:
std::string* foo()
{
std::string ret("foo");
return new ret; // This code doesn't work, it is just an illustration
}
'std :: string foo(){return" foo "; } '?このコピーは、すべて省略されていることが保証されています。 –
+1とジェームス、しかし、 'それ以外のものは避けてください。 –
私のコードはそれよりずっと複雑ですが、ポインタの制約は回避できません。 – klefevre