[c++17] 전문자를 위한 c++17 새로운 내용 북마크👨🏻💻 programming/◽ c, c++2024. 3. 11. 14:26
Table of Contents
728x90
c++17에 추가된 문법을 도서 "전문가를 위한 C++17(개정4판)"에서 빠르게 찾기 위해서 정리해보았다.
page | |
58 | 중첩된 네임스페이스 (nested namespace) |
61 | std::byte |
69 | if문의 이니셜라이저(intializer : 초기자) |
72 | switch문의 이니셜라이저(intializer : 초기자) |
81 | 구조적 바인딩(structured binding) |
138 | 로우 레벨 숫자 변환 |
#include <charconv> | |
140 | std::string_view클래스 |
298 | weak_ptr도 shared_ptr와 마찬가지로 C스타일 배열을 지원한다. |
299 | weak_from_this() |
390 | static 데이터 멤버를 inline으로 선언할 수 있다. |
530 | std::as_const() 헬퍼 메서드 |
#include <utility> | |
as_const(obj) == const_cast<const T&>(obj) | |
539 | [[fallthrough]] |
어트리뷰트 | [[nodiscard]] |
[[maybe_unused]] | |
543 | 사용자 정의 리터널 |
sv : std::string_view | |
546 | __has_include("파일명") |
__has_include(<파일명>) | |
576 | 생성자에 대한 템플릿 매개변수 추론 |
741,990 | <optional> |
991 | <variant> |
994 | <any> |
741 | 파일시스템 <filesystem> |
<filesystem>헤더 파일에 정의된 것들은 모두 std::filesystem 네임스페이스에 속한다.
|
|
755, 902 | 알고리즘 : sample() |
주어진 시퀀스에서 n개 원소를 무작위로 선택한다. | |
756, 906 | for_each_n( ) |
for_each와 비슷하지만 주어진 시퀀스에서 첫 n개 원소만 처리한다.
|
|
907 | exchange( ) |
지정한 값을 새 값으로 교체하고 기존 값을 리턴한다. <utility>헤더 파일에 정의돼 있다.
|
|
758, 917 | clamp( ) |
759 | 수치연산 알고리즘 |
919 | gcd( ) 최대 공약수 |
lcm( ) 최소 공배수 | |
920 | exclusive_scan( ) |
inclusive_scan( ) | |
transform_exclusive_scan( ) | |
transform_inclusive_scan( ) | |
919 | reduce( ) |
920 | transform_reduce( ) |
788 | 전역함수 추가: 모든 컨테이너에 대해 호출 가능 |
std::size( ) | |
std::empty( ) | |
789 | std::data( ) |
824 | 노드(node), 노드 핸들(node handle) |
node_type 타입 앨리어스 | |
노드 핸들을 컨테이너에 추가하는 insert() | |
839 | 컨테이너 멤버함수 |
extract( ) | |
insert_or_assigb( ) | |
merge( ) | |
try_emplace( ) | |
866 | 람다 캡쳐 |
[*this]: 현재 객체의 복제본을 캡쳐한다. 람다 표현식을 실행하는 시점에 객체가 살아 있지 않을 때 유용하다.
|
|
867 | 람다 표현식 |
constexptr 람다 표현식을 const로 지정한다. 그러면 컴파일 시간에 평가된다.
|
|
880 | not_fn |
883 | invoke( ) <functional> |
889 | 특수 탐색 알고리즘 <functional> |
search( ) 알고리즘에 원하는 탐색 알고리즘을 지정할 수 있도록 매개변수가 추가됐다.
|
|
default_searcher | |
boyer_moore_searcher | |
boyer_moore_horspool_searcher | |
917 | 병렬 알고리즘 |
978 | time_point에 연산 추가 |
floor( ) | |
ceil( ) | |
round( ) | |
1002 | make_from_tuple |
std::make_from_tuple<T>(tuple) | |
T타입의 생성자에 tuple의 원소를 인수로 전달해서 T객체를 만든다.
|
|
1003 | std::apply( ) |
1013 | 다형 메모리 할당자(polymorphic memory allocator) |
1080 | template에서 class 대신 typename 키워드를 사용할수 있다. |
1103 | 폴딩 표현식(folding expression) |
1111 | constexpr if |
런타임이 아닌 컴파일 시간에 수행된다. | |
조건을 만족하지 않으면 컴파일되지 않는다. | |
1116 |
value멤버가 있는 트레이트마다 트리에트 이름 뒤에 _v가 붙은 가변 템플릿이 추가됐다.
|
some_trait_v<T> | |
is_intergral_b<T> | |
is_const_v<T> | |
1156 | std::scoped_lock <mutex> |
lock_guard와 비슷하지만 뮤텍스를 지정하는 인수 개수에 제한이 없다.
|
728x90
'👨🏻💻 programming > ◽ c, c++' 카테고리의 다른 글
(c++20) [Three-way Comparsion(3방향 비교 연산자)/우주선] 연산자 (0) | 2024.06.14 |
---|---|
(c++20) consteval, constinit (0) | 2024.06.14 |
[C++] Map의 Key로 Class/Struct 넣기 (2) | 2023.08.11 |
(c++) 인코딩(Encoding),유니코드(Unicode), 로케일, 패싯 (0) | 2022.09.07 |
(c++) 디자인 패턴 01(싱글톤, 추상 팩토리, 옵저버, 프록시, 어댑터) (2) | 2022.08.24 |
@핑크코냥 :: 핑크코냥
안 하는 것 보다 낫겠지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!