Как отменить назначенное повышение :: нет для переменной - PullRequest
0 голосов
/ 04 апреля 2020

Это может быть проблема проектирования, в любом случае в моем коде есть переменная из структуры, которая мне нравится, если она необязательна (инициализируется с помощью boost :: none). Затем переменная передается как ссылка на функцию, и функция изменяет некоторые значения внутри нее. После этого я хотел бы посмотреть, является ли переменная действительной или нет, но, очевидно, она всегда возвращает ложь:

struct mystruct1 {
  int32_t A;
  std::string STR;
};  

void func1(boost::optional<struct mystruct1> &in) {
  // will modify A/STR values
}

void main() {

  boost::optional<struct mystruct1> v1 = boost::none;
  func1( v1 );

  if(v1) {
    // v1 is always false ..
  }
}

Итак, есть ли что-то, что я мог бы присвоить v1, чтобы сказать, что это не так (нет? ) больше (внутри функции func1)?

...