Std::optional как выходной параметр функцииC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std::optional как выходной параметр функции

Сообщение Anonymous »

Я пишу функцию bool mysystem(cmd, output) для запуска команды оболочки, аналогичной std::system(), но
  • Возвращаемое значение: (pclose() == EXIT_SUCCESS);
  • Выходной параметр, если он указан, назначьте его вместе с выходными данными оболочки или выполните ничего
  • Для простоты: пользователям не нужно определять любая переменная std::optional, достаточно обычного std::string.
Вопрос в том, почему я не могу изменить необязательный на необязательный в следующем коде?
Также func(string & output="") это то, что я хотел, но недопустимо в C++.
#include
#include

using namespace std;

// bool mysystem(const string & cmd, optional output=nullopt)
bool mysystem(const string & cmd, optional output=nullopt)
{
if (output)
output.emplace("changed");
return true;
}

int main(int argc, char *argv[])
{
string cmd, out;
mysystem(cmd); cout

Подробнее здесь: https://stackoverflow.com/questions/793 ... -a-funcion
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»