Это может быть проблема проектирования, в любом случае в моем коде есть переменная из структуры, которая мне нравится, если она необязательна (инициализируется с помощью 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)?