
ISO WG21 C++, 10 15 .
21, - .
: ++17 ; ++20
(
concepts),
- (
explicit generic lambdas) .
++17 ,
,
, . , ++
. , , ++20. stdlib , C++20 . , .
++20
Concepts, - C++11,
Concepts-Lite, - .
(terse syntax) ; , ++20.
_VA_OPT_
#define LOG(msg, ...) printf(msg __VA_OPT__(,) __VA_ARGS__)
LOG("hello world") // => printf("hello world")
LOG("hello world", ) // => printf("hello world")
LOG("hello %d", n) // => printf("hello %d", n)
- (Explicit generic lambdas) [pdf]
[] (T t) { /* ... */ }
- C++11, ; C++14 - auto:
[](auto x) { /* ... */ }
( ) - :
[](T x) { /* ... */ }
[](T* p) { /* ... */ }
[](T (&a)[N]) { /* ... */ }
shared_ptr [pdf]
shared_ptr p = make_shared(1024);
,
1.
, , :
enum class endian
{
little = __ORDER_LITTLE_ENDIAN__,
big = __ORDER_BIG_ENDIAN__,
native = __BYTE_ORDER__
};
vector v{vector{1, 2}};
// vector vector>
TS (Technical Specifications)
TS ++17 ( ):
- Filesystem v1 [pdf] boost::filesystem,
- Parallelism v1 [pdf] TS, algorithm ,
- Library Fundamentals v1 [pdf] : std::string_view, std::optional, std::any, system_error.
, , ( ):
TS, .
, , ++20.
- , ,
TS . ( ) .. - Microsoft . , , .
Concurrency v1 [pdf]
, ++20. , futures ( std::async), latches, atomic smart pointers. ++17 , .
MS Visual Studio, HPX just::thread. ,
P0676 P0701 TS .
Transactional Memory v1 [pdf]
, TS , shared_ptr , . , - .
Library Fundamentals v2
. , ++20.
Executors v1 [pdf]
. ++20, .. TS , .
Reflection v1 [pdf]
. ++20, .
TS ( ) (reification). , TS , Boost::Hana
.
Concurrency v2
. concurrent data structures, oncurrent queues, lock-free ; Hazard pointers ( ), RCU ( lock-free ), atomic views. ++20 , .. , , .
Parallelism v2
. , Parallelism v1 Parallel STL CPU, GPU. Parallelism v2
Library Fundamentals v3
.
Contracts v1
. TS, ++20. : assert, - - (.. ). , ++ , , , - .
Numerics [pdf]
. - ++20: decimal floating point, bounded types (, fixed point types), unbounded types, multiprecision arithmetic. (, , , ).
2D Graphics v1
.
std::string
starts_with,
ends_with.
, TS . , CUDA/OpenMP/OpenCL C++. , std::invoke, std::async, . , std::thread CPU; , Executors TS , , .
Google, NVidia, Codeplay NASDAQ TS, ++, : Concurrency, Parallelism, Transactional Memory, Networking.
, C++20, .
Michael Wong What's in C++20 and the C++17 final score card
2017 Toronto ISO C++ Committee Discussion Thread (Concepts in C++20; Coroutines, Ranges and Networking TSes published)
C++17: The Language Features Nicolai Josuttis
https://habrahabr.ru/post/333414/