Возврат строки из функции
От: .alex Ниоткуда  
Дата: 30.03.18 13:11
Оценка:
День добрый! У меня простой вопрос. Можно ли так делать, в смысле безопасно ли так возвращать строки из функций?
#include <iostream>
#include "string"

std::string foo()
{
    std::string s = "la-la-la";
    return s;
}

void main()
{
    std::string str = foo();
    std::cout << str << std::endl;
}
Re: Возврат строки из функции
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 30.03.18 13:15
Оценка: +1
Здравствуйте, .alex, Вы писали:

Да. В общем случае будет копирование. Нельзя только возвращать ссылку на строку внутри функции.
Sic luceat lux!
Re[2]: Возврат строки из функции
От: .alex Ниоткуда  
Дата: 30.03.18 13:54
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, .alex, Вы писали:


K>Да. В общем случае будет копирование. Нельзя только возвращать ссылку на строку внутри функции.

Понятно. спасибо!
Re[2]: Возврат строки из функции
От: koenjihyakkei Россия  
Дата: 30.03.18 14:56
Оценка: +1
Здравствуйте, Kernan, Вы писали:

K>В общем случае будет копирование.


Скорее всего не будет, RVO сработает.
Re[3]: Возврат строки из функции
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 30.03.18 15:19
Оценка:
Здравствуйте, koenjihyakkei, Вы писали:

K>Здравствуйте, Kernan, Вы писали:

K>>В общем случае будет копирование.
K>Скорее всего не будет, RVO сработает.
Поэтому я и уточнил, что в общем случае это будет копирование.
Sic luceat lux!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.