有关分配器重新绑定的查询

时间:2018-05-10 02:54:44

标签: c++ c++11 allocator

C++ concepts: Allocator

希望对以下内容有所了解:

  

A :: template rebind :: other(可选1

     

注意:1重新绑定只是可选的(由std::allocator_traits提供)   如果此分配器是SomeAllocator<T, Args>形式的模板,   其中Args为零或更多其他模板参数。

为什么rebind在上述情况下是可选的?

1 个答案:

答案 0 :(得分:1)

标准库始终通过jobj.Cast<KeyValuePair<string, JToken>>().Select(x => x) 模板访问分配器。如果jobj.Select((KeyValuePair<string, JToken> x) => x) 符合表单std::allocator_traits

,则此模板会提供默认定义rebind
  

Alloc<U, Args> rebind_alloc<T>如果存在,否则Alloc::rebind<T>::other如果此Alloc<T, Args>Alloc - cppreference.com : std::allocator_traits