λͺ©λ‘2022/05 (13)
KoreanFoodie's Study
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! std::optional (C++17 μ΄μ - ) μλ₯Ό λ€μ΄μ μ΄λ ν map μμ μ£Όμ΄μ§ ν€μ λμνλ κ°μ΄ μλμ§ νμΈνλ ν¨μλ₯Ό λ§λ€κ³ μΆλ€κ³ ν΄λ³΄μ. std::optional μ μ¬μ©νλ©΄ μ΄λ₯Ό κΉλνκ² κ΅¬νν μ μλ€! #include #include #include #include std::optional GetValueFromMap(const std::map& m, int key) { auto itr = m.find(key); if (itr != m.end()) { return itr->second; } // nullopt λ μ μ μλ κ°μ²΄λ‘ λΉμ΄μλ optional μ ..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! νμΌμ μ°Ύμ보μ νμΌ μμ€ν λΌμ΄λΈλ¬λ¦¬λ νμΌ λ°μ΄ν° μ μ μΆλ ₯μ λ΄λΉνλ νμΌ μ μΆλ ₯ λΌμ΄λΈλ¬λ¦¬ () κ³Όλ λ€λ₯΄λ€. μ κ²½μ°, νμΌ νλκ° μ£Όμ΄μ§λ©΄ ν΄λΉ νμΌμ λ°μ΄ν°λ₯Ό μ½μ΄λ΄λ μν μ νμ§λ§, κ·Έ μΈμ νμΌμ κ΄ν μ 보 (νμΌ μ΄λ¦, μμΉ, λ±λ±) μ κ΄ν λ°μ΄ν°λ₯Ό μμ ν μ λ μλ€. λ°λ©΄μ νμΌ μμ€ν λΌμ΄λΈλ¬λ¦¬μ κ²½μ°, νμΌμ κ΄ν μ 보 (νμΌ λ©νλ°μ΄ν)μ λν μ κ·Όμ λμμ£Όλ μν μ μννλ©°, νμΌ μ체λ₯Ό μ½λ μΌμ μννμ§ μλλ€. μ½κ² λ§ν΄μ νλ λμ€ν¬ μ΄λκ°μ μλ a.txt λΌλ νμΌμ μ°Ύκ³ μΆλ€λ©΄ filesystem λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκ² λκ³ , ν΄λΉ νμΌμ μ°Ύ..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! C μ€νμΌμ λμ μμ±μ λ¬Έμ μ #include #include #include int main() { srand(time(NULL)); for (int i = 0; i < 5; i++) { printf("λμ : %d \n", rand() % 100); } return 0; } μμ κ°μ C μ€νμΌμ λμ μμ±μ λ€μκ³Ό κ°μ λ¬Έμ μ λ€μ΄ μλ€ : λμμ²λΌ 보μ΄μ§λ§ 무μμλ‘ μμ±λ κ²μ΄ μλ (첫 μ«μλ§ λ¬΄μμ, λλ¨Έμ§λ μκ³ λ¦¬μ¦μΌλ‘ μμ±) μλκ°μ΄ λ무 μ²μ²ν λ³ν¨ (μμμλ μ΄ λ¨μ) 0 λΆν° 99 κΉμ§ κ· λ±νκ² λμλ₯Ό μμ±νμ§ μμ (rand() μ μ΅λκ°μ λ°λΌ rand() %..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! μ 체 λ¬Έμμ΄ λ§€μΉνκΈ° λ‘κ·Έ νμΌμ μΆμΆνλ μ½λλ₯Ό 보μ. #include #include #include int main() { // μ£Όμ΄μ§ νμΌ μ΄λ¦λ€. std::vector file_names = {"db-123-log.txt", "db-124-log.txt", "not-db-log.txt", "db-12-log.txt", "db-12-log.jpg"}; std::regex re("db-\\d*-log\\.txt"); for (const auto &file_name : file_names) { // std::boolalpha λ bool μ 0 κ³Ό 1 λμ μ false, true..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! ν νλ¦Ώ λ©ν ν¨μ ν νλ¦Ώ λ©ν ν¨μλ μ¬μ€ ν¨μλ μλμ§λ§ λ§μΉ ν¨μμ²λΌ λμνλ ν νλ¦Ώ ν΄λμ€λ€μ μλ―Ένλ€. μ΄λ€μ΄ λ©ν ν¨μμΈ μ΄μ λ 보ν΅μ ν¨μλ€μ κ°μ λν΄ μ°μ°μ μννμ§λ§, λ©ν ν¨μλ νμ μ λν΄ μ°μ°μ μννλ€λ μ μ΄ μ‘°κΈ λ€λ₯΄λ€. μμλ₯Ό 보μ. // μμμΈμ§ μ²΄ν¬ if (is_negative(x)) { // Do something... } // νμ μ΄ void μΈμ§ μ²΄ν¬ if (is_void::value) { } μλ μ½λλ₯Ό λλ €λ³΄μ. #include #include template void tell_type() { if (std::is_void::value) { s..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! decltype decltype ν€μλλ C++ 11 μ μΆκ°λ ν€μλλ‘, decltype λΌλ μ΄λ¦μ ν¨μμ²λΌ μ¬μ©λλ€. decltype(/* νμ μ μκ³ μ νλ μ */) μ΄λ, decltype μ ν¨μμλ λ¬λ¦¬, νμ μ μκ³ μ νλ μμ νμ μΌλ‘ μΉνλκ² λλ€. μλ₯Ό λ€μ΄, #include struct A { double d; }; int main() { int a = 3; decltype(a) b = 2; // int int& r_a = a; decltype(r_a) r_b = b; // int& int&& x = 3; decltype(x) y = 2; // int&& A* ..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! μμμ (Constance expression) μ»΄νμΌλ¬κ° μ»΄νμΌ νμμ μ΄λ ν μμ κ°μ κ²°μ ν μ μλ€λ©΄ ν΄λΉ μμ μμμ (Constance expression) μ΄λΌκ³ νννλ€. κ·Έλ¦¬κ³ μ΄λ¬ν μμμλ€ μ€, κ°μ΄ μ μμΈ κ²μ μ μ μμμ(Integral constant expression) μ΄λΌκ³ νκ² λλλ°, μ μ μμμλ€μ λ§€μ° μ°μμκ° λ§λ€. int arr[size]; // size κ° μ μ μμμμ΄μ΄μΌ ν¨ ... template struct A { int operator()() { return N; } }; A a; // number κ° μ μ μμμμ΄μ΄μΌ ν¨ ... e..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! C++ μμ±μ νν μ€μ λ€μκ³Ό κ°μ μ½λλ μ무κ²λ μΆλ ₯νμ§ μλλ€. #include class A { public: A() { std::cout
AddMovementInput ν¨μλ‘ κ°λ¨νκ² μ²λ¦¬νκΈ° ////////////////////////////////////// ////////////////////////////////////// BlasterCharacter.h ////////////////////////////////////// ////////////////////////////////////// #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "BlasterCharacter.generated.h" UCLASS() class BLASTER_API ABlasterCharacter : public ACharacter { GENERATED_..
IK_Rig λ₯Ό μ΄μ©νκΈ° μ λλ©μ΄μ μ μ¬μ©ν λ, μ€μΌλ ν€μ΄ λ€λ₯Έ κ²½μ° λ¦¬νκΉμ ν΄ μ£Όμ΄μΌ νλ€. μΈλ¦¬μΌ 5μμλ IK_Rig μ μ΄μ©ν΄ ν¬μ¦λ€μ ν¨μ¨μ μΌλ‘ μμ νλλ‘ λ§λ€μλ€. μμ μλ³Έ IK_Rigμ μ 보면 IK_Retargeting μ Chain μ΄ μ€μ λμ΄ μλ€. μΌνΈμ Bone Hierarchy λ₯Ό μ 보면μ, μ°λ¦¬κ° 리νκΉνκ³ μνλ IK_Rig μ λ§κ² 체μΈμ μ€μ ν΄μ£Όλ©΄ λλ€. μ°λ¦¬κ° μνλ μ€μΌλ ν λ©μ (μ¬κΈ°μλ SK_Epic Character) μ κΈ°λ°ν IK_Rig μ μμ±νλ€. μ΄λ¦μIK_Blaster λ‘ νλ€. κ·Έ ν, κΈ°μ‘΄μ IK_Mannequin κ³Ό κ°μ μ΄λ¦μ Chain λ€μ λ§λ€μ΄ μ£Όλ©΄ λλ€. λ°©λ²μ μλμ κ°λ€. κ·Έ ν, IK Retargeter λ₯Ό μμ±ν΄μ€λ€. Sourc..