Я пытаюсь определить класс, которому можно передать функцию «распределителя объектов», и он принимает оператор объекта шаблона new() в качестве аргумента по умолчанию. У меня есть следующий код:
template<class _Obj>
class Foo
{
private:
typedef _Obj (_Obj::*fp_alloc_type)();
public:
Foo(fp_alloc_type t=_Obj::operator new ());
...
};
Это дает ошибку компилятора C2039: 'new' : не является членом 'SomeObj'
Разве компилятор не генерирует реализацию «нового» по умолчанию для объектов, которые не определяют свои собственные? Я что-то упускаю?
operator new
для вашего класса. Откуда вы взяли эту идею? - person Nawaz   schedule 28.03.2013::operator new()
- person StoryTeller - Unslander Monica   schedule 28.03.2013template < class T > class allocator
- person andre   schedule 28.03.2013operator new
. Конечно, если программист пишет::new Foo
, то он все равно будет использовать::operator new()
. - person James Kanze   schedule 28.03.2013