Насколько я понимаю, std :: option - это тип значения , который может не содержать значения из-за сбоя.Стандартный способ .Net для решения проблемы такого типа - создать исключение или разрешить распространению исключения.Однако, похоже, что вы не хотите этого делать, так что вот альтернативы.
Для ссылочного типа .Net (объявленного в C # как class
, в C ++ / CLI как ref class
или ref struct
, используемый в C ++ / CLI с ^
), способ справиться с этим - просто вернуть nullptr
.Типы ссылок очень и очень редко хранятся по значению, а возвращение нуля является гораздо более стандартным.
Для типа значения .Net (объявленного в C # как struct
, в C ++ / CLI как value class
или value struct
, используемого в C ++ / CLI без ^
), Я бы использовал System::Nullable<T>
.Nullable - это тип, аналогичный Optional, где тип значения может иметь значение null.