반응형

C++/C++ 심화 강좌 3

[C++17 심화 강좌] 스마트 포인터 편리하게 사용하기

장렬히 떠나신 auto_ptr에 대한 내용은 기술하지 않겠습니다. 평소에 자주 쓰는 스마트 포인터는 shared_ptr, unique_ptr 이 둘뿐이라고 생각합니다. shared_ptr p(new int[10], [](int* p){ delete[] p; }); 아마 배열을 쓰신다면 이렇게 쓰시겠죠. 그렇다고 함수객체를 쓰기엔 너무 복잡하니까. 하지만 C++17에선 타입을 T[]라고 쓰는 것만으로도 알아서 다~ 해제해줍니다. shared_ptr p(new int[10]); 하지만 shared_ptr은 tuple이나 array와 달리 Deduction Guide가 존재하지 않습니다. (존재하긴 합니다. weak_ptr이나 unique_ptr일때만....) 그래서 제가 한번 만들어봤습니다. template..

[C++ 심화 강좌] C++20 <=> Three-way 비교 연산자

환영합니다, Rolling Ress의 카루입니다. ​ 사실 작성한 건 3월...? 정도인데, 어쩌다가 이제서야 올리는지...아무튼 시작하겠습니다. 드디어 이걸 포스팅하는 날이 오네요. 제가 이해하는데도 상당한 시간이 걸린, Three-way Comparsion Operator 입니다. 이건 다른 것보다 클래스에서 비교 연산자를 만들 때 특히 도움이 되겠더라고요. , =, ==, != 정의할 필요 없이 auto operator 한방이면 끝납니다. ​ 일단 이게 무엇인지는 알아야겠죠. 그 전에, 중학교 3학년 수학에서 배우셨을 법한 실수의 대소비교에 대해서 알아보도록 하겠습니다. ​두 실수 a, b에 대해 반드시 위 세 가지 중 하나가 성립하죠. 한 실수에서 다른 실수를 뺀 값을 0과 비교하면 크기를 알 수..

반응형