프로그래밍/C++ 28

C++ 파일 탐색

#include namespace fs = std::filesystem; filesystem 라이브러리를 이용하여 파일을 탐색. const fs::path projectPath = fs::current_path().parent_path().parent_path(); const fs::path modelsPath = projectPath / "models" / "glTF-Sample-Models-master" / "2.0"; SearchModelFiles(modelsPath); std::filesyste::current_path(), parent_path()함수로 경로를 불러오고 파일을 탐색할 경로를 입력해줌 void JsonManager::SearchModelFiles(const filesystem::p..

프로그래밍/C++ 2023.10.17

LNK2019, LNK1120 해결법

#include #include #include #include #include #include using namespace Microsoft::WRL; inline void ThrowIfFailed(HRESULT hr) { // DirectX API 오류를 탐지하기 위해 이 줄에 중단점 설정 if (FAILED(hr)) throw std::exception(); } int main() { #if defined(DEBUG) || defined(_DEBUG) { // 디버그층 활성화 ComPtr debugController; ThrowIfFailed(D3D12GetDebugInterface(IID_PPV_ARGS(&debugController))); debugController->EnableDebugLay..

프로그래밍/C++ 2022.12.15

C++ Lambda

Lambda 람다는 쉽게 말해서 "함수를 인자로 보낼때" lvalue로 "생성 되어있는 함수"를 보내는 것이 아닌 rvalue를 "즉석에서 만들어 보내는것" Lambda 사용법 -[캡쳐](매개변수){함수 내용} auto findIt3= std::find_if(v.begin(), v.end(), [&itemId](Item& item) { return item._itemId == itemId;}); Lambda.. 왜써? struct FindItem { FindItem(int itemId, Rarity rarity, ItemType type) : _itemId(itemId) { } bool operator()(Item& item) { return item._itemId == _itemId } int _ite..

프로그래밍/C++ 2022.11.10

전달 참조(보편 참조)와 forward

보편 참조 == 전달참조 보편 참조라는 이름이 c++17로 오면서 전달 참조라고 바뀜 전달 참조가 무엇이냐! 코드 부터 보겠음 template void Test_ForwardingRef(T&& param) { } &&가 두개.. 오른값을 인자로 받는 코드인가?? 오른값(rvalue)과 이동 대입 연산자 value는 두개로 나뉠 수 있는데 하나는 왼값( lvalue ) 또 하나는 오른값( rvalue ) int a = 5; 위 코드에서 a가 왼값이고 5가 오른값이라고 할 수 있음 즉 왼값은 - 단일식을 넘어서 계속 지속되는 개체를 flrjtwjrjt.tistory.com Knight k1; Test_ForwardingRef(k1); Test_ForwardingRef(std::move(k1)); 하지만 왼값..

프로그래밍/C++ 2022.11.09

오른값(rvalue)과 이동 대입 연산자

value는 두개로 나뉠 수 있는데 하나는 왼값( lvalue ) 또 하나는 오른값( rvalue ) int a = 5; 위 코드에서 a가 왼값이고 5가 오른값이라고 할 수 있음 즉 왼값은 - 단일식을 넘어서 계속 지속되는 개체를 뜻함 오른값 - 왼값이 아닌 나머지로 임시 값, 열거형, 람다, i++ 등이 오른 값에 해당함 void TestKnight_Copy(Knight knight) {} void TestKnight_LValueRef(Knight& knight) {} void TestKnight_ConstLValueRef(const Knight& knight) {} // &&를 넣으면 오른값을 넣을 수 있음 대신 왼값은 못넣음 void TestKnight_RValueRef(Knight&& knight..

프로그래밍/C++ 2022.11.09

using, typedef

using - 사용 typedef - 타입을 정의 typedef,와 using은 "별명 만들기 정도"로 생각하면 좋음 __int64의 별명을 IT64로 int의 별명을 IT로 -typedef 사용법 typedef 형식 이름 -using 사용법 using 이름 = 형식 typedef void (*Myfunc)(); // Myfunc는 함수포인터를 지칭하게 됨 using Myfunc2 = void(*)(); typedef __int64 IT64; // IT64는 __int64를 지칭하게 됨 using IT = int; template using List = std::list; // list를 vector로 바꾸는 등으로 활용 가능 template struct LIST { typedef std::list Li..

프로그래밍/C++ 2022.11.09