I'm a newbie on cplusplus, and thanks for answering my questions.
The paragraph in the stl_list.h is read as follow:
// NOTA BENE
// The stored instance is not actually of "allocator_type"'s
// type. Instead we rebind the type to
// Allocator<List_node<Tp>>, which according to [20.1.5]/4
// should probably be the same. List_node<Tp> is not the same
// size as Tp (it's two pointers larger), and specializations on
// Tp may go unused because List_node<Tp> is being bound
// instead.
//
// We put this to the test in the constructors and in
// get_allocator, where we use conversions between
// allocator_type and _Node_alloc_type. The conversion is
// required by table 32 in [20.1.5].
- Where can I find the [20.1.5]/4 and the table 32 stuffs like that??
- Why is the specializations on Tp may go unused? What does this actually mean? (If you can provide a piece of simple source code and a simple explanation, I'll really be appreciate it.)
- What if people do need the specializations, is there a way to hack it??:)