2010-04-08 70 views
3

我需要爲在g ++中放置新的bug找到解決方法。我現在已經在gcc-4.3中修復了,但我必須支持版本4.2和4.1。例如,下面的代碼有錯誤編譯在gcc中放置新東西

「錯誤:沒有匹配函數調用「運營商新的(長無符號整數,無效* &)」

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 >(); 
+0

我有興趣。你認爲gcc-4.3中的哪個bug已經「修復」了這個問題?當我沒有'#include '時,我肯定會在gcc-4.4中得到這個錯誤(如預期的那樣)。 – 2010-04-08 20:46:24

+1

可能是早些時候一些常見的標準頭文件包括''而現在它不? – UncleBens 2010-04-08 22:03:51

回答

10

要使用標準庫佈局new s,您必須#include <new>