Delay allocator rebind to keep symbol names shorter.
diff --git a/asio/include/asio/impl/executor.hpp b/asio/include/asio/impl/executor.hpp
index 02616cb..43add57 100644
--- a/asio/include/asio/impl/executor.hpp
+++ b/asio/include/asio/impl/executor.hpp
@@ -135,12 +135,12 @@
   static impl_base* create(const Executor& e, Allocator a = Allocator())
   {
     raw_mem mem(a);
-    impl* p = new (mem.ptr_) impl(e, mem.allocator_);
+    impl* p = new (mem.ptr_) impl(e, a);
     mem.ptr_ = 0;
     return p;
   }
 
-  impl(const Executor& e, const allocator_type& a) ASIO_NOEXCEPT
+  impl(const Executor& e, const Allocator& a) ASIO_NOEXCEPT
     : impl_base(false),
       ref_count_(1),
       executor_(e),
@@ -222,7 +222,7 @@
 private:
   mutable detail::atomic_count ref_count_;
   Executor executor_;
-  allocator_type allocator_;
+  Allocator allocator_;
 
   struct raw_mem
   {