optional을 사용하면 리턴값이 있을 수도 없을 수도 있다.
위와 같이 b==0일 때 nulloptional을 리턴해
if (answer)에서 answer가 존재하지않으므로
no value가 출력된다.
만약 nulloptional일 때 기본값을 따로 정하고싶다면 value_or(원하는 값)을 이용해
값을 리턴할 수 있다.
optional의 메모리구조를 보면
int num은 스택에 4bytes로 10을 저장하는데 반에
optional은 좀 더 큰 공간을 가지고 4bytes로는 20을 저장한 뒤
뒤에는 optional이 valid한지 아닌지 확인한다.