Soruya geçmeden önce birkaç şeyden söz edeyim.
Dize her zaman bulunmalıysa (programlayıcı hatası değilse), isteğe bağlı olarak kullanmak yerine kullanamazsanız, muhtemelen atmanız gerekir. Kullanıcı girişi olsa bile, yakalamayı/atmayı denemek isteyebilirsiniz.
Sınıfınız konteynır gibi konteynırı taklit ediyorsa, bulunmadığını belirtmek için bir
end sentinel kullanmayı düşünmelisiniz, null değil.
If however returning a null representation is what you're after, your function return type would be
boost::optional and the null return would be
return boost::none;.