std :: function是否支持自定义分配器?

时间:2014-01-16 11:14:15

标签: c++ c++11 allocator c++14 std-function

This open-std document表明std :: function支持自定义分配器,但我无法在互联网或usual references上找到关于如何提供自定义分配器的任何内容。

我的研究倾向于让我相信自定义分配器是在boost::function中实现的,但尚未进入std::function

所以问题是std::function是否在C ++ 11中使用自定义分配器?如果没有,它很可能在C ++ 14中支持一个吗?

2 个答案:

答案 0 :(得分:8)

std::functions有几个构造函数可以传递std::allocator_arg作为第一个参数,实际的分配器作为第二个参数。

http://en.cppreference.com/w/cpp/utility/functional/function/function

答案 1 :(得分:3)

标准说std::function支持自定义分配器,但是一些编译器(至少是GCC)还不支持它。现在还不完全清楚自定义分配器应该如何使用std::function或标准库中使用类型擦除的其他类模板,例如, LWG 2095LWG 2245。对这些类型的恕我直言分配器支持是半生不熟的,没有明确规定。

N3726提出了一些更改,以澄清std::function应该如何使用其分配器,作为更大变化的一部分。