C++ 학습 안내
C++ 학습 안내: 시작하기, 핵심 개념, 사용 예제와 관련 주제를 순서대로 탐색합니다.
시작하기
문법과 API
- C++: 기본 자료형
- C++: 표준 입출력
- C++: 파일 입출력
- C++: 조건문
- C++: 반복문
- C++: namespace
- C++: 동적 메모리 할당
- C++: placement new
- C++: reference
- C++: class
- C++: const
- C++: static
- C++: 상속/가상 함수/가상 테이블
- C++: friend
- C++: 오버로딩/오버라이딩
- C++: 동적 바인딩
- C++: cast
- C++: template
- C++: explicit
- C++: mutable
- C++: inline
- C++: string
- C++: macro 함수와 inline 함수
- C++: auto
- C++: lambda
- C++: noexcept
- C++: copy elision
- C++: nullptr
- C++: final
- C++: is_final
- C++: override
- C++: l-value, r-value
- C++: 이동 생성자
- C++: move/move_backward
- C++: move_iterator
- C++: is_move_assignable
- C++: 완벽한 전달
- C++: 보편 참조
- C++: 스마트 포인터
- C++: function
- C++: mem_fn
- C++: bind
- C++: atomic/memory order
- C++: thread
- C++: promise, future, packaged_task, async
- C++: uniform initialization
- C++: decltype
- C++: declval
- C++: tuple
- C++: constexpr
- C++: common_type
- C++: random
- C++: type alias
- C++: attribute
- C++: literals
- C++: integral_constant
- C++: hypot
- C++: uncaught_exception/uncaught_exceptions
- C++: owner_less
- C++: static_assert
- C++: exception_ptr
- C++: yield
- C++: copy_n
- C++: copy_if
- C++: minmax
- C++: minmax_element
- C++: all_of, any_of, none_of
- C++: exchange
- C++: if and switch with initializer
- C++: structured binding declaration
- C++: string_view
- C++: optional
- C++: nested namespace definition
- C++: CTAD(Class Template Argument Deduction)
- C++: variant
- C++: any
- C++: scoped_lock
- C++: apply
- C++: search
- C++: polymorphic_allocator
- C++: monotonic_buffer_resource
- C++: void_t
- C++: conjunction/disjunction/negation
- C++: __has_include
- C++: includes
- C++: launder
- C++: destroy/destroy_at/destroy_n
- C++: uninitialized_move
- C++: clamp
- C++: accumulate/reduce
- C++: gcd/lcm
- C++: inclusive_scan/exclusive_scan
- C++: extract
- C++: merge
- C++: try_emplace/insert_or_assign
- C++: empty/size
- C++: data
- C++: to_chars/from_chars
- C++: not_fn
- C++: default_searcher/boyer_moore_searcher/boyer_moore_horspool_searcher
- C++: is_invocable
- C++: is_swappable/is_nothrow_swappable/is_swappable_with/is_nothrow_swappable_with
- C++: uninitialized_value_construct
- C++: concepts
- C++: coroutines
- C++: module
- C++: constinit
- C++: consteval
- C++: three-way comparison
- C++: ranges
- C++: counting_semaphore/binary_semaphore
- C++: latch
- C++: barrier
- C++: jthread
- C++: span
- C++: ssize
- C++: remove_cvref
- C++: endian
- C++: bind_front
- C++: midpoint
- C++: lerp
- C++: is_bounded_array/is_unbounded_array
- C++: erase/erase_if
- C++: designated initializers
- C++: nested inline namespaces
- C++: source_location
- C++: feature testing
- C++: to_array
- C++: format
- C++: 문자열을 숫자키로 변환
- C++: 함수 정의 출력
- C++: bool 출력
- C++: void pointer, null pointer
사용 가이드
실습과 문제 해결
표준별 찾아보기
관련 표준을 기준으로 모았습니다. 각 기능의 최초 도입 버전을 뜻하지는 않습니다.
C++98 (26)
- C++: 기본 자료형
- C++: 표준 입출력
- C++: 파일 입출력
- C++: 조건문
- C++: 반복문
- C++: namespace
- C++: 동적 메모리 할당
- C++: placement new
- C++: reference
- C++: class
- C++: const
- C++: static
- C++: 상속/가상 함수/가상 테이블
- C++: friend
- C++: 오버로딩/오버라이딩
- C++: 동적 바인딩
- C++: cast
- C++: template
- C++: explicit
- C++: mutable
- C++: inline
- C++: string
- C++: 함수 정의 출력
- C++: bool 출력
- C++: void pointer, null pointer
- C++: macro 함수와 inline 함수
C++17 (47)
- C++: cast
- C++: template
- C++: inline
- C++: lambda
- C++: copy elision
- C++: constexpr
- C++: if and switch with initializer
- C++: structured binding declaration
- C++: string_view
- C++: optional
- C++: nested namespace definition
- C++: CTAD(Class Template Argument Deduction)
- C++: variant
- C++: any
- C++: scoped_lock
- C++: apply
- C++: search
- C++: polymorphic_allocator
- C++: monotonic_buffer_resource
- C++: void_t
- C++: conjunction/disjunction/negation
- C++: __has_include
- C++: includes
- C++: launder
- C++: destroy/destroy_at/destroy_n
- C++: uninitialized_move
- C++: clamp
- C++: accumulate/reduce
- C++: gcd/lcm
- C++: inclusive_scan/exclusive_scan
- C++: extract
- C++: merge
- C++: try_emplace/insert_or_assign
- C++: empty/size
- C++: data
- C++: to_chars/from_chars
- C++: not_fn
- C++: attribute
- C++: default_searcher/boyer_moore_searcher/boyer_moore_horspool_searcher
- C++: is_invocable
- C++: literals
- C++: integral_constant
- C++: is_swappable/is_nothrow_swappable/is_swappable_with/is_nothrow_swappable_with
- C++: uninitialized_value_construct
- C++: hypot
- C++: uncaught_exception/uncaught_exceptions
- C++: static_assert
C++11 (46)
- C++: string
- C++: auto
- C++: lambda
- C++: noexcept
- C++: copy elision
- C++: nullptr
- C++: final
- C++: is_final
- C++: override
- C++: l-value, r-value
- C++: 이동 생성자
- C++: move/move_backward
- C++: move_iterator
- C++: is_move_assignable
- C++: 완벽한 전달
- C++: 보편 참조
- C++: 스마트 포인터
- C++: function
- C++: mem_fn
- C++: bind
- C++: atomic/memory order
- C++: thread
- C++: promise, future, packaged_task, async
- C++: uniform initialization
- C++: decltype
- C++: declval
- C++: 문자열을 숫자키로 변환
- C++: tuple
- C++: constexpr
- C++: common_type
- C++: random
- C++: type alias
- C++: attribute
- C++: literals
- C++: integral_constant
- C++: hypot
- C++: uncaught_exception/uncaught_exceptions
- C++: owner_less
- C++: static_assert
- C++: exception_ptr
- C++: yield
- C++: copy_n
- C++: copy_if
- C++: minmax
- C++: minmax_element
- C++: all_of, any_of, none_of
C++20 (32)
- C++: string
- C++: auto
- C++: lambda
- C++: string_view
- C++: attribute
- C++: literals
- C++: concepts
- C++: coroutines
- C++: module
- C++: constinit
- C++: consteval
- C++: three-way comparison
- C++: ranges
- C++: counting_semaphore/binary_semaphore
- C++: latch
- C++: barrier
- C++: jthread
- C++: span
- C++: ssize
- C++: remove_cvref
- C++: endian
- C++: bind_front
- C++: midpoint
- C++: lerp
- C++: is_bounded_array/is_unbounded_array
- C++: erase/erase_if
- C++: designated initializers
- C++: nested inline namespaces
- C++: source_location
- C++: feature testing
- C++: to_array
- C++: format