Ответ 1
Обратите внимание, что это функция по разрыву функции, а не по разбиению заголовка, потому что она кажется более полезной.
Если мы рассмотрим документацию SGI для STL, мы найдем следующее:
-
slist
был переименованstd::forward_list
. -
bit_vector
заменен спецификацией шаблонаstd::vector<bool>
. Реализация этого может (не должна) оптимизироваться для пространства так, как это делаетbit_vector
. -
hash_set
и друзья теперь написаны какunordered_set
. Функциональность, похоже, одинакова. (Спасибо T.C.!) -
rope
отсутствует. В стандартной библиотеке нет эквивалентной структуры данных. Я не смог найти соответствующую дискуссию по этой теме в WG21. -
sequence_buffer
отсутствует, поскольку в основном это использовалось для обратной установкиrope
. -
random_sample
иrandom_sample_n
отсутствуют. Причина обсуждается в N3547:После рассмотрения РГО21 на совещании в Софии-Антиполисе Фостер обновил это предложение. Среди других изменений он отозвал [
random_sample
иrandom_sample_n
]: "LWG обеспокоена тем, что они могут быть недостаточно хорошо поняты для стандартизации... Может быть целесообразно предложить эти алгоритмы для TR2" [ Aus08b ]. Вики-протоколы обсуждения одинаково кратки: "Бьярне чувствует, что обоснование недостаточно. PJ беспокоится, что мы ошибаемся. Лоуренс опасается, что люди сворачивайте свои собственные и ошибайтесь. Хороший кандидат на ТР2" [ LWG08 ]. Последующее голосование в отношении эти предлагаемые алгоритмы достигли устойчивого консенсуса LWG (10-1, 2 абс.) в пользу их будущего включение в технический отчет (в настоящее время называемый технической спецификацией)
Версия алгоритма random_sample_n
внесла его в Основы библиотеки TS и называется std::experimental::sample
, последняя итерация предложения N3925 была принята в 2014-02, но пока еще не является частью стандарта, я полагаю, мы увидим на С++ 17. (Спасибо T.C.!)
-
lexicographical_compare_3way
отсутствует. Он считался "неважным" для стандартизации в соответствии с N2666. -
power
пишетсяpow
и не имеет обобщенных возможностей, которые делаетpower
. -
identity
,project1st
,project2nd
,select1st
иselect2nd
никогда не делали стандартизации. Я не мог найти дискуссию о том, почему. -
subtractive_rng
также отсутствует. Предположительно, потому что<random>
будет заменять это проблемное пространство. -
binder1st
,binder2nd
,ptr_fun
,pointer_to_unary_function
,pointer_to_binary_function
,mem_fun
(и друзья),unary_compose
иbinary_compose
отсутствуют или устарели. Они более или менее замененыstd::bind
и друзьями. -
construct
иdestroy
были перемещены в классallocator
и не существуют как автономные функции. (Спасибо T.C.!) -
temporary_buffer
отсутствует. Но доступныget_temporary_buffer
иreturn_temporary_buffer
. Я не смог точно узнать, почему, но какая болтовня, с которой я столкнулась, кажется, подразумевает, что она сломалась каким-то образом довольно принципиально, и многие люди пытались ее исправить. То, что и как остается для меня загадкой.