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

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