std::optional

김대익·2022년 3월 22일
0

optional을 사용하면 리턴값이 있을 수도 없을 수도 있다.


위와 같이 b==0일 때 nulloptional을 리턴해

if (answer)에서 answer가 존재하지않으므로

no value가 출력된다.


만약 nulloptional일 때 기본값을 따로 정하고싶다면 value_or(원하는 값)을 이용해
값을 리턴할 수 있다.



optional의 메모리구조를 보면

int num은 스택에 4bytes로 10을 저장하는데 반에
optional은 좀 더 큰 공간을 가지고 4bytes로는 20을 저장한 뒤
뒤에는 optional이 valid한지 아닌지 확인한다.

0개의 댓글