верно. Конструкция вида optional<map<int, Type1{optional<Type2{optional<int> field2}> field1} не редкость. И вот хочется писать a?->operator [](10)?->field1?->field2, а не гору проверочного кода, за которым не видно нафига оно, собственно, надо
И возвращать expected?
Обсуждают сегодня