2024. 4. 19. 18:21ㆍ언어 및 엔진/C++
Modern C++
Auto
변수 정의 시 자료형을 지정해 주지 않아도 초기화 시 타입이 결정됨.
range based for
for문을 쉽고 안전하게 쓰기 위한 것
값 복사 방지 : 레퍼런스 받아오기
값 변경 방지 : const이용
enum class
강한 형 사용 / 범위
unscoped enumeration : 자료형이 붙지 않음
scoped enumeration : 자료형이 붙음
클래스로 선언하면 네임스페이스를 붙여야 한다.
non-static data member initializers
멤버변수의 선언과 동시에 초기화 가능
initializer lists
초기화 리스트 전용 타입. 함수의 인자, 유저 정의형, STL
컨테이너의 초기화 가능
default / delete definition
default : 컴파일러가 함수를 자동으로 셍성하도록 명시적으로 지정
delete : 컴파일러가 함수를 자동으로 생성하지 않도록 명시적으로 지정
override / final
override : 재정의
final : 재정의 방지
emplacement
오브젝트 생성과 컨테이너 추가를 한번에. 값 복사가 없기 때문에
더 적은 비용으로 가능
constexpr
변수, 함수, 클래스를 정수로 사용 가능
lambda
어떤 변수를 넣을 때 []캡쳐를 이용하여 바로 넣을 수 있다.
스코프의 변수를 참조또는 복사, 변경할 때 사용
auto사용 가능, 가변 인수로 사용 가능
random
예측 불가능한 난수 생성
thread
여러 함수를 동시에 실행이 가능하도록 한다.
sleep을 이용하여 일시 중지가 가능
yield를 이용하여 양보가 가능
공유자원을 사용할 수 있는지 조사 (다른 thread에서 lock을 걸었다면
사용할 수 없다 - 대기하거나, 바로 false를 반환하거나) - 실수로 unlock을
호출하지 않을 경우를 대비하여 lock_guard를 사용하도록 한다.
단 한번만 실행하고 싶을 때에는 call_once를 사용하도록 한다.
'언어 및 엔진 > C++' 카테고리의 다른 글
[C++] DeadLock (0) | 2024.04.19 |
---|---|
[C++] Multi Process / Multi Thread (0) | 2024.04.19 |
[C++] 메모리 구조와 메모리 단편화 (0) | 2024.04.19 |
[C++] Smart Pointer (0) | 2024.04.19 |
[C++] Overloading / Overriding (0) | 2024.04.19 |