这个开放的std文档建议std::函数支持自定义分配器,但是我在互联网或常用参考资料上找不到任何关于如何提供自定义分配器的信息。
我的研究倾向于让我相信自定义分配器是用boost::function实现的,但还没有实现到std::function。
那么问题是,std::function是否支持C++11中的自定义分配器?如果没有,它最有可能支持C++14中的一个吗?
发布于 2014-01-16 11:16:47
std::functions有几个构造函数,可以作为第一个参数传递std::allocator_arg,第二个传递实际的分配器。
http://en.cppreference.com/w/cpp/utility/functional/function/function
发布于 2014-01-17 10:41:29
标准说std::function支持自定义分配器,但是一些编译器(至少GCC)还不支持它。还不完全清楚自定义分配器应该如何使用std::function,或者标准库中使用类型擦除的其他类模板,例如LWG 2095和LWG 2245。IMHO分配器对这些类型的支持还不够成熟,而且没有得到很好的说明。
N3726提出了一些更改,以澄清std::function应该如何使用它的分配器,作为一些大得多的更改的一部分。
https://stackoverflow.com/questions/21160184
复制相似问题