Heads up - Allocator value_type vs container value_type

The C++ standard requires that the value_type of an allocator match the value_type of the container that uses that allocator. (table 98, first row).

libc++ has, for a long time, caused a compile-time failure if this is not true for many containers (list, string, unordered_[multi]map, unordered_[multi]set and vector), but not for all of them. Specifically, deque, forward_list, [multi]map and [multi]set are missing this check.

I will be adding these checks very soon (tomorrow). These will turn run-time undefined behavior into a compile time error.

While I don’t anticipate any breakage, it is possible.

– Marshall

-- Marshall