분류 전체보기 294

[C++] 유용한 C++ 기능 - brace initialization

기본 초기화의 문제점 // #1. 멤버 변수 배열은 초기화할 수 있는 방법이 없다. struct A { int arr[100]; }; // #2. POD 동적 할당을 초기화할 수 있는 방법이 없다. char* buff = new char[100]; // #3. STL 컨테이너를 초기화할 수 없다. std::vector vec; // #4. 타입에 따라 초기화 구문이 일관적이지 않다. int i(10); // 10으로 초기화 A a(); // a는 기본 생성자로 초기화?? A 타입을 리턴하는 함수 선언?? C++11에서 도입된 중괄호 {}를 사용한 초기화 방식을 "brace initialization" 또는 "uniform initialization"이라고 부릅니다. int myInt = 42; // 기존..

[C++] 유용한 C++ 기능 - structured binding

C++17에서 도입된 structured binding은 복합적인 데이터 구조를 손쉽게 풀어낼 수 있는 기능을 제공합니다. 이를 통해 배열, 튜플, 구조체 등에서 멤버를 간단하게 추출하여 사용할 수 있습니다. Structured binding은 다음과 같은 문법을 사용합니다: auto [변수1, 변수2, ...] = 표현식; 여기서 표현식은 풀어낼 데이터 구조를 나타내며, 변수1, 변수2 등은 구조체나 튜플의 각 요소에 대응됩니다. 예를 들어, 튜플을 사용한 structured binding은 다음과 같이 보입니다: #include #include int main() { std::tuple myTuple(42, 3.14, "Hello"); auto [a, b, c] = myTuple; std::cout

[C++] 유용한 C++ 기능 - if / switch init statement

if / switch init statement 로컬 변수의 생명주기가 블럭과 같도록 합니다. if 문 이후에 x 변수가 잘못 사용되는 위험을 방지하고 코드의 의도를 명확히 합니다. if (int x = getX(); x > 0) { // x가 0보다 큰 경우에 실행되는 코드 // x를 여기서 사용할 수 있음 } else { // x가 0 이하인 경우에 실행되는 코드 } 위의 예제에서 getX() 함수는 변수 x를 초기화하는데 사용됩니다. 이렇게 하면 if 블록 내에서만 x가 유효하게 됩니다. 다음은 switch에서 사용하는 예시입니다. switch (int value = getValue(); value) { case 1: // value가 1인 경우에 실행되는 코드 break; case 2: // va..

[UE] Unreal Engine UObject에서 Tick함수 사용하는 법

https://lykanstudio.tistory.com/83 // Test.h #include "Tickable.h" class PROJECTTest_API UTest : public UObject, public FTickableGameObject { GENERATED_BODY() public: UTest(); public: /** 사용할 Tick함수 입니다. */ virtual void Tick(float DeltaTime) override; /** Tick을 활성화할지 여부를 반환하는 함수입니다. */ virtual bool IsTickable() const override; /** 에디터에서 Tick을 활성화할지 여부를 반환하는 함수입니다. 일반적으로 true를 반환하여 에디터에서도 객체의 Tic..

[UE5] Game Ability System 상세 로그 보기

Game Ability System 소스 코드에는 많은 로깅들이 구현 되어 있습니다. 이러한 로그들은 ABILITY_LOG() 문으로 남기고 있습니다. 로그의 표시 수준 : VeryVerbose < Verbose < Log < Display < Warning < Warning < Error < Fatal 로그 카테고리 별로 표시 수준이 정해져 있으며 표시 수준 보다 낮은 수준은 표시 하지 않습니다. 예를 들어 아래 표에서 LogAbilitySystem 로그 카테고리의 표시 수준이 Display이면 'Display < Warning < Warning < Error < Fatal' 수준의 로그만 표시 됩니다. 로그 카테고리 표시 수준 LogAbilitySystem Display LogAbilitySystem..

[UE5] Game Ability System 디버깅 명령

showdebug abilitysystem 이 기능은 세 개의 "페이지"로 나뉩니다. 세 페이지 모두 현재 가지고 있는 게임플레이 태그를 표시합니다. AbilitySystem.Debug.NextCategory showdebug abilitysystem 명령으로 디버깅을 킨 상태에서 AbilitySystem.Debug.NextCategory 명령으로 세 페이지를 순환할 수 있습니다. AbilitySystem.Debug.PrevTarget 명령으로 이전 페이지로 순회 할 수도 있습니다. 첫 페이지 : 모든 어트리뷰트의 CurrentValue가 표시됩니다. 두 번째 페이지 : 모든 지속 시간 및 무한 게임플레이 이펙트와 스택 수, 해당 이펙트가 부여하는 게임플레이 태그, 부여하는 모디파이어가 표시됩니다. 세 ..