title: Is boost::fast_pool_allocator using null_mutex safe in the presence of allocator rebinding?
body: <p>I was wondering about the safety of using <code>boost::fast_pool_allocator</code> with <code>null_mutex</code> set. </p>
  
  <p>I know that the following is an unsafe instance. An allocator is instantiated per type. So if you have two containers which both use <code>fast_pool_allocator&lt;int, …null_mutex&gt;</code> (say), they will both share the same allocator instance, and hence invite data races. </p>
  
  <p>A greater concern is the following. The allocator interface allows rebinding. This means that even though you think you are using the <code>fast_pool_allocator</code> with a ‘local’ type which is unlikely to collide with other instances, a container is free to rebind that allocator to a different type, such as a global one, which does collide.</p>
  
  <p>So the question is: Just how safe is <code>boost::fast_pool_allocator</code> with <code>null_mutex</code>?</p>