насколько мне известно, изначально для нужд стандартной библиотеки rebind был необходим только для аллокаторов. теперь, с грядущим приходом C++23 rebind будет необходим ещё и для std::expected.
как мне кажется, плодить для каждого нуждающегося в rebind'е класса отдельный typedef -- слишком кривое решение, которое мало того что плохо масштабируется, порождая лишний бойлерплейт, так ещё и выглядит просто ужасно (вспомните про std::allocator_traits<AllocatorForT>::template rebind_alloc<U>). хотя ничто не мешает реализовать подобный функционал вообще для всех шаблонов классов сразу
нуууу... Вообще-то мешает. Это не для всех шаблонов работает, а только для тех где типы. И зачем rebind exptected??
P.S. аллокатор просто должен зависеть не от типа, а от размера и алигмента
насколько мне известно, изначально для нужд стандартной библиотеки
rebind
был необходим только для аллокаторов. теперь, с грядущим приходом C++23rebind
будет необходим ещё и дляstd::expected
.как мне кажется, плодить для каждого нуждающегося в
rebind
'е класса отдельныйtypedef
-- слишком кривое решение, которое мало того что плохо масштабируется, порождая лишний бойлерплейт, так ещё и выглядит просто ужасно (вспомните проstd::allocator_traits<AllocatorForT>::template rebind_alloc<U>
). хотя ничто не мешает реализовать подобный функционал вообще для всех шаблонов классов сразу