Use operator[] rather than operator(), to avoid potential confusion from having use_future look like a function object.
diff --git a/asio/include/asio/use_future.hpp b/asio/include/asio/use_future.hpp index 30dd437..4d8411f 100644 --- a/asio/include/asio/use_future.hpp +++ b/asio/include/asio/use_future.hpp
@@ -38,7 +38,7 @@ } template <typename OtherAllocator> - use_future_t<OtherAllocator> operator()(const OtherAllocator& allocator) const + use_future_t<OtherAllocator> operator[](const OtherAllocator& allocator) const { return use_future_t<OtherAllocator>(allocator); }