프로그래밍 언어/C++

    ImGui 기본 사용법

    출처: https://github.com/ocornut/imgui/wiki/Getting-StartedImGui는 여러 플랫폼을 지원하는 C++ GUI 라이브러리이다. ImGui를 사용하는 방법은 다음과 같다.1. 컴파일링/링킹ImGui를 자신의 프로젝트에서 사용하기 위한 컴파일, 링킹 단계이다. ImGui 위키의 내용을 따라 다음과 같이 진행해주면 된다.master 혹은 docking 브랜치 중에서 하나를 선택한다.선택한 브랜치를 자신의 프로젝트의 서브모듈로 추가하거나, 압축을 풀어 프로젝트 경로에 위치시킨다.자신의 프로젝트나 빌드 시스템에 따라서 ImGui의 파일들을 추가해준다. 선택한 파일들은 프로젝트에 컴파일/링킹된다.루트 디렉토리에 있는 모든 *.cpp, *.h 파일을 추가한다.backends ..

    std::vector의 emplace, emplace_back 사용시 주의사항

    문제상황emplace와 emplace_back 함수는 C++의 STL 컨테이너에서 제공하는 함수로, 컨테이너에 새로운 요소를 삽입하기 위해 사용한다. insert, push_back과 동일한 결과를 기대할 수 있지만, 객체를 생성하고 삽입하는 과정을 최적화하여 불필요한 복사나 이동을 줄일 수 있다. 하나의 std::vector에 대하여 emplace, emplace_back을 사용하는 경우에는 다음과 같은 문제가 발생할 수 있다.(insert, push_back을 사용하는 경우에도 동일한 문제가 발생할 수 있음)std::vector vec;// vec가 비어있는 상황에선 vec.begin() == vec.end()auto iter = vec.begin();// vec에 원소를 추가하여 iter의 값은 무..

    const, constexpr, consteval

    1. constC++에서 상수를 정의하거나, 변수나 객체의 값을 상수화하기 위해 사용하는 대표적인 키워드이다. 기본적인 사용법은 다음과 같다.// 1. 상수 변수const int MAX_VALUE = 100;// 2. 상수 포인터int value = 10;const int* ptr = &value; // 포인터가 가리키는 값을 변경할 수 없음int* const ptr2 = &value; // 포인터 자체를 변경할 수 없음const int* const ptr3 = &value; // 포인터와 가리키는 값을 모두 변경할 수 없음// 3. 상수 멤버 함수class MyClass {public: // 멤버 변수 value를 변경할 수 없음 int getValue() const { ..

    환경설정(vcpkg 설치)

    홍정모의 게임 만들기 연습 문제 패키지(GameDevPracticePackage) 환경설정1. github 레포지토리 클론하기게임 만들기 연습 문제 패키지는 뼈대 코드가 제공된다. 다음 주소에서 프로젝트를 클론해오면 된다.https://github.com/jmhong-simulation/GameDevPracticePackage2. vcpkg 및 라이브러리 설치vcpkg는 마이크로소프트에서 제공하는 C/C++ 의존성 관리 패키지이다. npm이나 pip 명령어를 사용해서 원하는 라이브러리를 설치해 자신의 프로젝트에서 사용할 수 있는 것처럼, vcpkg를 통해 C/C++에서도 원하는 라이브러리를 자신의 프로젝트에 손쉽게 적용시킬 수 있다.vcpkg 설치 방법https://github.com/microsoft/..