본문 바로가기

반응형

C++

Unit test C++ gtest gtest란? Google Test Framework로 유닛 테스트에 사용됨. Google Test는 Google의 특정 요구사항 및 제약사항을 기반으로 테스트 기술팀에서 개발한 Testing 프레임워크임. gtest Git 링크 https://github.com/google/googletest 컴파일러 C ++ 11 표준 이상을 준수하는 코드베이스 및 컴파일러가 필요함. gcc 5.0 이상 clang 5.0 이상 MSVC 2015+ 사용 가능 OS Linux, Windows, Mac 왜 Google Test를 사용해야 하나? 1. 테스트는 독립적이고 반복가능해야 합니다. gtest는 디버깅을 빠르게 할 수 있도록 테스트를 분리시켜 실행할 수 있도록 해 줌. 2. 테스트는 조직화가 잘 되어있으며 테스트되.. 더보기
CMake 총정리 및 자세한 설명 C++ 프로젝트를 위한 CMake 사용법 CMake 사용법 실행 파일 및 라이브러리 만들기 CMake 란? CMake 는 빌드 파일을 생성해주는 프로그램 입니다. 다시 말해 CMake 를 통해서 프로젝트를 빌드를 하는 것이 아니라, CMake 를 통해서 빌드 파일을 생성하면 빌드 프로그램을 통해서 프로젝트를 빌드 하는 것입니다. 예를 들어서 make 를 사용한다면 CMake 를 통해서 Makefile 을 생성할 것이고, 요즘 핫한 Ninja 를 사용한다면 CMake 를 통해서 .ninja 빌드 파일을 만들어줄 것입니다. Ninja 빌드 시스템 아무튼, 이 부분에 대해서 많은 사람들이 혼동하고 계시는데, 다시 한 번 강조하자면 CMake 는 빌드 프로그램 아니라 빌드 파일을 생성하는 프로그램 입니다. CM.. 더보기
C++ 비트 플래그 비트 플래그 (bit flag) 메모리의 최소 크기 단위는 1바이트이므로 변수의 크기는 적어도 1바이트 이상이다. 8비트(1바이트)는 비트가 8개이므로 8가지 상태를 저장할 수 있다. 이는 1바이트를 사용해서 1비트만 사용하고 7비트를 낭비함으로써 1가지 상태만 저장하는 bool 자료형보다 훨씬 효율적이다. 플래그(flag)는 깃발에서 유래한 용어다. 보통 깃발을 위로 올리면 on, 아래로 내리면 off를 뜻한다. 이걸 정수의 비트에 활용하는 건데 비트가 1이면 on, 0이면 off를 나타낸다. 여기서 바이트의 개별 비트를 비트 플래그(bit flag)라고 한다. 플래그를 설명할 때는 일반적으로 오른쪽에서 왼쪽으로 센다. 예를 들어, 아래는 두 번째와 여덟 번째 비트가 켜진 상태다. 0100 0001 /.. 더보기
[C++] 연산자 오버로딩 이번시간에는 연산자 오버로딩에 대해 알아보도록 하겠습니다. ☞ 연산자 오버로딩이란 기존의 제공하고 있는 연산자를 재정의하여 사용자 정의 클래스로 사용하는 것을 말합니다. 대부분의 기본 제공 연산자 함수는 전역 함수 또는 클래스로 재정의 가능합니다. 오버로드 된 연산자는 함수로 구현됩니다. ☞ 연산자 오버로드에 대한 일반 규칙 **과 같은 새로운 연산자를 정의할 수는 없습니다. 기본 제공 데이터 형식에 적용할 때 연산자의 의미를 다시 정의 할 수 없습니다. 오버로드 된 연산자는 비정적(non-static) 클래스 멤버 함수거나 전역 함수이어야 합니다. (private 또는 protected 접근자의 전역 함수는 해당 클래스의 friend로 선언해야 합니다.) 단항 연산자 또는 이항 연산자(&, *, +, .. 더보기