프로그래밍 언어

    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 { ..

    LuaTinker 라이브러리를 통한 C++과 Lua 스크립트 연동

    참고 링크 https://www.tistory.com/ LuaTinker 깃허브 주소 https://github.com/zupet/LuaTinker 1. 스크립트 언어의 필요성 컴파일 없이 코드 수정 가능 재시작 없이 변경 가능 2. LuaTinker의 기술적 특징 의존성 최소화 및 메모리 사용 최소화 템플릿 메타 프로그래밍(Template Metaprogramming: TMP, !TODO 공부하기) 컴파일 도중에 실행되는 컴파일 기반의 프로그램을 작성하는 행위 3. LuaTinker의 특징 C / C++ 함수간의 상호 호출 전역 변수 접근 table 제어 지원 C++ 클래스 함수 및 변수 접근 가능 4. LuaTinker 사용방법 4.1 함수 등록 C++ Code #include "stdafx.h" v..