ÐиблиоÑека конÑепÑов (C++20)
ÐиблиоÑека конÑепÑов пÑедоÑÑавлÑÐµÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾ÑновнÑÑ ÐºÐ¾Ð½ÑепÑов библиоÑеки, коÑоÑÑе можно иÑполÑзоваÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑовеÑки аÑгÑменÑов Ñаблона во вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии и вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð¸ÑпеÑÑеÑизаÑии ÑÑнкÑий на оÑнове ÑвойÑÑв Ñипов. ÐÑи конÑепÑÑ Ð¾Ð±ÐµÑпеÑиваÑÑ Ð¾ÑÐ½Ð¾Ð²Ñ Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого мÑÑÐ»ÐµÐ½Ð¸Ñ Ð² пÑогÑÐ°Ð¼Ð¼Ð°Ñ .
ÐолÑÑинÑÑво конÑепÑов ÑÑандаÑÑной библиоÑеки налагаÑÑ ÐºÐ°Ðº ÑинÑакÑиÑеÑкие, Ñак и ÑеманÑиÑеÑкие ÑÑебованиÑ. ÐовоÑÑÑ, ÑÑо ÑÑандаÑÑнÑй конÑÐµÐ¿Ñ ÑдовлеÑвоÑÑеÑÑÑ, еÑли ÑдовлеÑвоÑÑÑÑÑÑ ÐµÐ³Ð¾ ÑинÑакÑиÑеÑкие ÑÑебованиÑ, и моделиÑÑеÑÑÑ, еÑли он ÑдовлеÑвоÑÑеÑÑÑ, и его ÑеманÑиÑеÑкие ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ (еÑли ÑаковÑе имеÑÑÑÑ) Ñакже вÑполнÑÑÑÑÑ.
Ðак пÑавило, компилÑÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовеÑиÑÑ ÑолÑко ÑинÑакÑиÑеÑкие ÑÑебованиÑ. ÐÑли доÑÑовеÑноÑÑÑ Ð¸Ð»Ð¸ знаÑение пÑогÑÐ°Ð¼Ð¼Ñ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ Ñого, моделиÑÑÐµÑ Ð»Ð¸ поÑледоваÑелÑноÑÑÑ Ð°ÑгÑменÑов Ñаблона конÑепÑ, и конÑÐµÐ¿Ñ ÑдовлеÑвоÑÑеÑÑÑ, но не моделиÑÑеÑÑÑ, или еÑли ÑеманÑиÑеÑкое ÑÑебование не вÑполнÑеÑÑÑ Ð² ÑоÑке иÑполÑзованиÑ, пÑогÑамма некоÑÑекÑна, диагноÑÑика не ÑÑебÑеÑÑÑ.
ÐонÑепÑÑ | ||
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² пÑоÑÑÑанÑÑве имÑн
std | ||
ÐÑновнÑе ÑзÑковÑе конÑепÑÑ | ||
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² заголовоÑном Ñайле
<concepts> | ||
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð´ÑÑгим Ñипом (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип ÑвлÑеÑÑÑ Ð¿ÑоизводнÑм Ð¾Ñ Ð´ÑÑгого Ñипа (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип неÑвно пÑеобÑазÑеÑÑÑ Ð² дÑÑгой Ñип (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо два Ñипа имеÑÑ Ð¾Ð±Ñий ÑÑÑлоÑнÑй Ñип (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо два Ñипа имеÑÑ Ð¾Ð±Ñий Ñип (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип ÑвлÑеÑÑÑ ÑелÑм Ñипом (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип ÑвлÑеÑÑÑ ÑелоÑиÑленнÑм Ñипом Ñо знаком (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип ÑвлÑеÑÑÑ ÑелÑм беззнаковÑм Ñипом (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип, ÑÑо ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо ÑÐ¸Ð¿Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑиÑвоен дÑÑгой Ñип (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип можно поменÑÑÑ Ð¼ÐµÑÑами или ÑÑо два Ñипа можно поменÑÑÑ Ð¼ÐµÑÑами дÑÑг Ñ Ð´ÑÑгом (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñипа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑниÑÑожен (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñипа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñоздана из набоÑа Ñипов аÑгÑменÑов или пÑивÑзана к ним (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ñипа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑконÑÑÑÑиÑован по ÑмолÑÐ°Ð½Ð¸Ñ (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ñипа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑконÑÑÑÑиÑован пеÑемеÑением (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ñипа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñоздан копиÑованием и пеÑемеÑением (конÑепÑ) | |
ÐонÑепÑÑ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ | ||
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² заголовоÑном Ñайле
<concepts> | ||
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² логиÑеÑкиÑ
конÑекÑÑаÑ
(конÑÐµÐ¿Ñ ÑолÑко Ð´Ð»Ñ ÑкÑпозиÑии) | |
ÑказÑваеÑ, ÑÑо опеÑаÑÐ¾Ñ == ÑвлÑеÑÑÑ Ð¾ÑноÑением ÑквиваленÑноÑÑи (конÑепÑ) | ||
ÑказÑваеÑ, ÑÑо опеÑаÑоÑÑ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñипа даÑÑ Ð¾Ð±Ñий поÑÑдок (конÑепÑ) | ||
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² заголовоÑном Ñайле
<compare> | ||
ÑказÑваеÑ, ÑÑо опеÑаÑÐ¾Ñ <=> даÑÑ ÑоглаÑованнÑй ÑезÑлÑÑÐ°Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñипов (конÑепÑ) | ||
ÐонÑепÑÑ Ð¾Ð±ÑекÑа | ||
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² заголовоÑном Ñайле
<concepts> | ||
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ñипа можно пеÑемеÑаÑÑ Ð¸ менÑÑÑ Ð¼ÐµÑÑами (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ñипа можно копиÑоваÑÑ, пеÑемеÑаÑÑ Ð¸ менÑÑÑ Ð¼ÐµÑÑами (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо обÑÐµÐºÑ Ñипа можно копиÑоваÑÑ, пеÑемеÑаÑÑ, менÑÑÑ Ð¼ÐµÑÑами и ÑоздаваÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо Ñип ÑвлÑеÑÑÑ ÑегÑлÑÑнÑм, Ñо еÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно semiregular и equality_comparable (конÑепÑ) | |
ÐÑзÑваемÑе конÑепÑÑ | ||
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² заголовоÑном Ñайле
<concepts> | ||
(C++20) |
ÑказÑваеÑ, ÑÑо вÑзÑваемÑй Ñип Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñзван Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм набоÑом Ñипов аÑгÑменÑов (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо вÑзÑваемÑй Ñип ÑвлÑеÑÑÑ Ð»Ð¾Ð³Ð¸ÑеÑким пÑедикаÑом (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо вÑзÑваемÑй Ñип ÑвлÑеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм оÑноÑением (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо relation накладÑÐ²Ð°ÐµÑ Ð¾ÑноÑение ÑквиваленÑноÑÑи (конÑепÑ) | |
(C++20) |
ÑказÑваеÑ, ÑÑо relation Ð½Ð°Ð»Ð°Ð³Ð°ÐµÑ ÑÑÑогий ÑлабÑй поÑÑдок (конÑепÑ) | |
ТоÑки каÑÑомизаÑии обÑекÑов | ||
(C++20) |
Ð¾Ð±Ð¼ÐµÐ½Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð´Ð²ÑÑ
обÑекÑов (обÑÐµÐºÑ ÑоÑки наÑÑÑойки) |
ÐополниÑелÑнÑе конÑепÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи в библиоÑеке иÑеÑаÑоÑов, библиоÑеке алгоÑиÑмов и библиоÑеке диапазонов.