关于allocator类中的allocate成员函数,VC6与标准库的定义是否不同?
平台:VC6+SP6,
有如下代码不能通过编译,报错:error C2660: 'allocate' : function does not take 1 parameters
#include <memory>
{
...
std::allocator<T> alloc;
size_type n;
...
T* data = alloc.allocate(n); //error C2660
...
}
我于是打开VC6中定义这个allocate的文件(...\VC98\INCLUDE\XMEMORY)一看,allocator类中相关的部分居然是这样定义的:
pointer allocate(size_type _N, const void *)
{return (_Allocate((difference_type)_N, (pointer)0)); }
我的问题是:(1)按照标准库,allocate不是应该只有一个参数(size_type _N)么?
(2)pointer allocate(size_type _N, const void *),这算什么语法?第二个参数定义成这样是什么意思啊?如果要调用这个成员函数应该怎么写呢?
请诸位高手指教了,小弟我不胜感激.