Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Placement new in gcc

Tags:

c++

gcc

I need to find a workaround for a bug with placement new in g++. I now it was fixed in gcc-4.3 but I have to support versions 4.2 and 4.1. For example, following code compiles with an error

"error: no matching function for call to 'operator new(long unsigned int, void*&)"

template<class T, template<typename> class Alloc> 
inline void* type_ctor()
{
    Alloc<T> a; void* p = a.allocate(1);
    new(p) T;
    return p;
}

.....

type_ctor<A, NewAllocator >();
like image 659
Roman Prykhodchenko Avatar asked Dec 23 '22 04:12

Roman Prykhodchenko


1 Answers

To use the standard library placement news, you have to #include <new>.

like image 147
CB Bailey Avatar answered Dec 26 '22 12:12

CB Bailey