[C++] enum class : 범위 있는 열거형
개요 안녕하세요. 이번 글에서는 C++11에서 추가된 enum class(범위 있는 열거형, scoped enum)에 대해 알아보겠습니다. 기존 enum은 편리하지만 이름 충돌과 의도치 않은 정수 변환이라는 약점이 있습니다. enum class는 이 두 문제를 …
개요 안녕하세요. 이번 글에서는 C++11에서 추가된 enum class(범위 있는 열거형, scoped enum)에 대해 알아보겠습니다. 기존 enum은 편리하지만 이름 충돌과 의도치 않은 정수 변환이라는 약점이 있습니다. enum class는 이 두 문제를 …
개요 안녕하세요. 이번 글에서는 C++11에서 도입된 auto 키워드와 범위 기반 for문(range-based for)에 대해 알아보겠습니다. 이 둘은 함께 쓰면 반복문 코드를 훨씬 짧고 읽기 쉽게 만들어 줍니다. 특히 반복자(iterator)로 길게 쓰던 …
개요 안녕하세요. 이번 글에서는 Win32 API로 개발할 때 꼭 필요한 GetLastError와 FormatMessage에 대해 알아보겠습니다. 대부분의 Win32 함수는 실패하면 FALSE나 NULL만 돌려줄 뿐, 왜 실패했는지는 알려주지 않습니다. 그 이유는 에러 코드로 …
개요 안녕하세요. 이번 글에서는 C++11에서 도입된 이동 시맨틱(move semantics)에 대해 알아보겠습니다. 기존 C++에서는 객체를 다른 곳에 넘길 때 항상 복사가 일어났습니다. 그런데 곧 사라질 임시 객체까지 굳이 복사하는 것은 낭비입니다. …
개요 안녕하세요. 이번 글에서는 C++의 스마트 포인터(smart pointer)에 대해 알아보겠습니다. C++에서 new로 할당한 메모리는 delete로 직접 해제해야 하는데, 해제를 빠뜨리거나 중간에 예외가 발생하면 메모리 누수(memory leak)가 생깁니다. 스마트 포인터는 이런 …
개요 안녕하세요. 이번 글에서는 C, C++ 에서 구조체 분석을 할 때 자주 사용되는 함수에 대해 알아보겠습니다. offsetof와 _countof 매크로 함수는 구조체에서 특정 변수의 위치나, 배열의 개수를 얻고 싶을 때 자주 …
윈도우에는 임시 파일을 저장하는 임시 폴더가 있습니다. 프로그램이 임시로 만든 파일들을 생성하는 폴더인데 잡다한 파일들이 다 있습니다.프로그램을 개발하는 개발자 입장에서는, 프로그램에 실행 시 자주 반복되면서 시간이 오래 걸리는 것들을 임시 …
함수를 까먹어서 기록하기 위한 글입니다.어떤 문자열이 있을 때 정해진 포맷이 있다면 그 포맷에서 데이터를 추출하는 경우가 있습니다. C++인 경우엔 regex를 사용하면 정확한 문자열 검증이 가능하지만, 간단하게 사용할 수 있는 sscanf_s …
이번 글에서는 QMutex에 대해 알아보겠습니다. QMutex는 멀티 쓰레드 상황에서 공유된 자원에 대해 동시에 엑세스 할 때 사용되는 동기화 클래스 입니다. QMutex를 사용하기 위해서는 아래와 같이 헤더 파일을 include 해야합니다. QMutex의 …
이번 글에서는 Qt 에서 QThread를 사용하는 방법에 대해 알아보겠습니다. QThread는 QTimer와 다르게 신호를 발생시키지 않고, 별도의 쓰레드를 생성하여 특정 작업을 수행합니다. QThread에서 자주 사용하는 함수들은 아래와 같습니다. MyThread 클래스 생성 …