람다

Programming/C++ & Unreal

C++ 람다에서 클래스 멤버 변수를 복사로 캡쳐하여 사용하면 클래스 자체를 복사한다.

개요C++에서 람다로 복사 캡쳐 하여 클래스의 멤버 변수를 사용하면 멤버 변수만 복사되어 넘어오는 것이 아니고, 클래스 그 자체가 복사된다.C#에서는 async의 매직 코드로 멤버 변수만 넘어왔었는데, 이 사실을 모르고 C++에서도 비슷하게 사용했다가 복사로 인한 부하가 심각하게 발생하는 문제가 발생하였었다. -_-;; 코드#include class CMember{public: CMember() { std::cout void { MyFunction(main_class); }; return 0;}/*CMember 기본 생성자CMain 기본 생성자**** 람다 생성 ****CMember 기본 생성자CMain 복사 생성자*/자 이렇게 main_class를 복사 캡쳐 모드에서 사용하면 main_cl..

Programming/C# & Unity

C# 람다 클로저 원리

개요 C#의 람다식의 사용법과 어떻게 작동하는지 간략하게 정리한다. 람다 int number = 5; // input에 5를 더하여 리턴하는 익명 함수를 담은 변수 action. var action = (int input) => { return number + input; }; // 5 + 10이 리턴되어 15가 출력된다. Console.WriteLine(action(10)); // 출력: 15 위 코드에서 "(int input) => { return number + input; };" 구문을 람다 식이라고 부르며, 함수지만 이름이 없어서 무명 함수(메서드)라고도 부른다. 이때, 익명 함수 외부에서 가져온 변수 number를 캡처된 변수라고 부른다. 그리고 캡처가 완료되어 사용가능한 상태가 된 익명 함수..

장형이
'람다' 태그의 글 목록