وقتی نیاز باشد خروجی یک تابع، یا یک تایپ باشد یا null باشد، میتوان از optional استفاده کرده
std::optional<int> foo(int num) { if(num%2) { return std::nullopt; { return num/2; }
در مثال بالا، اگر عدد ورودی فرد باشد، null برگردانده می شود و اگر زوج باشد، تقسیم بر دو می شود.
نحوه استفاده از این تابع به شکل زیر میباشد:
void use_foo(int num) { auto result = foo(num); if(!result) { std::cout << result.value(); { }