在获取分配器的上下文中,C++03 等效于 auto

C++03 equivalent for auto in the context of obtaining an allocator

auto source_allocator = source.get_allocator();

如果事先不知道分配器的类型,有没有办法用 C++03/98 友好的东西替换上面的 auto

根据您在评论中发布的内容,听起来您正试图在模板中执行此操作。

假设您希望您的模板化类型是 std::container 或兼容的类型,您可以这样做: typename T::allocator_type 代替自动。

https://godbolt.org/z/Pda77vjox

至少对于标准容器,容器类型需要定义 container_type,因此您通常会按照以下一般顺序得到一些东西:

template <class Container>
void foo(Container const &source) { 
    typename Container::allocator_type source_allocator = source.get_allocator();
    // ...
}

这正是他们需要标准容器来定义这些名称的情况。当然,它也适用于其他具有相同功能的容器。