Будет проблема, если ваш код будет выглядеть так:
std::string& MyFunc()
{
std::string mystring("test");
return mystring;
}
Итак, как вы написали, все в порядке. Только один совет - если вы можете построить строку таким образом, я имею в виду - вы можете сделать это в один ряд, иногда лучше сделать это так:
std::string MyFunc()
{
return "test";
}
Или, если это более "сложно", например:
std::string MyFunct( const std::string& s1,
const std::string& s2,
const char* szOtherString )
{
return std::string( "test1" ) + s1 + std::string( szOtherString ) + s2;
}
Это даст подсказку вашему компилятору для большей оптимизации, чтобы он мог сделать на одну копию вашей строки (RVO).