주로 인자 전달용 (std::make_unique()에서 사용) -> std::make_unique를 제외하고는 전체적으로 실용적이지 않음 사용하는데 있어서 실용적이지는 않다고 판단된다.
람다 식(Lambda Expression)
·
C++
쉽게 말해서는 이름 없는 함수다. 쉽게 일회용 함수라고 생각하면 된다. []() -> { } captures = 캡처 블록 parameters = 매개변수 목록(선택 사항) specifiers = 지정자(선택 사항) return_type = 반환 형(선택 사항) body = 함수 바디 캡처 블록 : 람다 식을 품는 범위 안에 있는 변수를 람다 식에 넣어줄 때 사용 - 종류: - [] 비어있음 - [=] 값에 의한 캡처. 모든 외부 변수 캡처, 람다 식 안에서 수정X - [&] 참조에 의한 캡처, 모든 외부 변수를 캡처 - [] 특정 변수를 값으로 캡처, 람다 식 안에서 수정X - [&] 특정 변수를 참조로 캡처 - 캡처 옵션은 섞어 쓸 수 있다. - ex) [=, &score1] -> 모든 변수를 값에 ..
C++ constexpr
·
C++
컴파일 시 값 평가를 강제하기 위하여 탬플릿 메타프로그래밍 남용 -> 보통 컴파일러가 자발적으로 평가해주지만 어떤 코드로 인하여 컴파일러가 해주지 않는 경우가 있다. => constexpr는 이를 해달라는 프로그래머의 의도를 보여주는 방식이다.(비슷한 예시로 inline이 있다) 컴파일 도중 "반드시" 값이 결정되게 하려면 constexpr변수를 쓸 것 문자열 해쉬를 도중에 만들 수 있다면? -> 문자열 비교에 드는 런타임 비용은 언제나 O(1)이 된다. -> constexpr을 써서 컴파일 타임에 문자열 해쉬를 만들 수 있게 됐다! 참고로 const와 constexpr은 다르다. 변수의 경우 const => 변경을 불허 constexpr => 컴파일 시 평가를 해달라 하지만 둘 다 const다 즉 co..
컴퓨터그래픽스기초 1주차
·
학교수업
성적(코로나로 인한 비율 변화) 중간 30% -> 10% 기말 40% 학습태도 10% 과제 10% -> 30% 출석 10% PC - > OpenGL 모바일 -> OpenGL ES
윈도우즈 프로그래밍 1주차
·
학교수업
김종현 교수 이메일 : jonghyunkim@kangnam.ac.kr 점수(코로나에 따른 점수 퍼센트 변동) 레포트 10% (1개 이상) -> 30% 기말 고사 프로젝트 40% 시험(중간고사) 30% -> 10% 강의 태도 10% 출석률 10%
이동 생성자 및 이동 대입 연산자
·
C++
값의 분류(대표적) 1. lvalue 지속적으로 유지되는 개체 2. rvalue lvalue가 아닌값, 일시적인 값 ex) 람다 rvalue 참조 (&&) - 임시적인 값을 참조로 쓰겠다. - C++11이후 나옴 - 기능상 &연산자와 비슷 - & 연산자 -> lvalue 참조, &&연산자 -> rvalue 참조 std::move() - rvalue 참조로 반환 - lvalue를 rvalue로 변환 이동 생성자 ::(&&) - 다른 개체 멤버 변수들의 소유권을 가져 옴 - 복사 생성자와 달리, 메모리 재할당 x - 복사 생성자보다 빠름 - 약간 얕은 복사와 비슷하다. -> Mystring::MyString(MyString&& other) {...} rvalue 최적화 - 이동 생성자와 이동 대입 연산자 =..