SW 그리고 아빠 엔지니어링 중...

아는 만큼 보이고, 경험해봐야 알 수 있고, 자꾸 써야 내 것이 된다.

C++17 3

new/delete 동작 원리 이해하기

💬 C++ core guidelines에 따르면 메모리 관리는 RAII가 되는 smart pointer를 권장하고 있다.하지만 이미 레거시 코드에 녹여져 있는 new/delete는 어떻게 해야 하나?🤔 또 malloc/free는?😨C++에서 malloc/free를 못 본 것 같긴 하지만 간단히 new/delete와의 차이점을 정리하고 new/delete를 좀 더 쪼개서 동작시키는 내용을 정리해 본다. 🚀 우선 new/delete 동작 원리를 알아보자.Examplenew/delete를 사용한 프로그램 코드이다.class Point{ int x, y;public: Point(int a, int b) { std::cout ResultPoint()~Point() 주석 1, 2의 동작 원리를 정..

L C++ 2024.07.22

std::string_view의 이해

SL.str.2: 문자들의 나열을 참조하기 위해서는 std::string_view나 gsl::string_span을 사용하라. 🤔 C++ Core Guidelines에 가이드이다. 왜 std::string_view를 써야 하는지 알아보자. 📢 std::string_view를 이해하기 위해 기존 개념부터 이해하고 넘어가야 할 것 같은데 알고 있는 내용은 다음 내용으로 넘어가도 좋다. 초기화 VS 대입 아래 예제코드의 초기화와 대입에 대해 우선 이해해 보자. //primitive type //1-1) int a = 0; //1-2) int b; b = 0; // user define type //2-1) std::string s1 = "hello"; //2-2) std::string s2; s2 = "hel..

L C++ 2024.03.19

[Concurrency] mutex의 lock/unlock 관리 도구 소개 (2/2)

이전 글에서 2023.12.29 - [L C++] - [Concurrency] mutex의 lock/unlock 관리 도구 소개 (1/2) RAII 원칙을 지키는 mutex의 lock/unlock 관리도구를 2가지 소개했는데 나머지 2가지를 알아보자. std::lock_guard (C++11) std::scoped_lock (C++17) std::unique_lock (C++11) std::shared_lock (C++14) std::unique_lock Since C++11 unique_lock은 기능이 많다. (lock_guard를 포함한 확장 버전이라고 생각하면 좋을 것 같다.) 예제를 통해서 unique_lock의 특징을 확인해 보자. 예제 1-1 unique_lock의 특징을 테스트한 프로그램 ..

L C++/Concurrency 2024.01.02
320x100