gpt4 book ai didi

c++ - GCC 4.2 模板奇怪的错误

转载 作者:行者123 更新时间:2023-11-30 03:09:36 26 4
gpt4 key购买 nike

我使用 GCC 4.2/XCode 编译了以下代码。

template <typename T>
class irrProcessBufferAllocator
{
public:

T* allocate(size_t cnt)
{
return allocProcessBufferOfType<T>(cnt);
}

void deallocate(T* ptr)
{
if (ptr)
{
releaseProcessBuffer(ptr);
}
}

void construct(T* ptr, const T& e)
{
new ((void*)ptr) T(e);//"error: expected type-specifier before 'e' " and
//error: expected `;' before 'e'
}

void destruct(T* ptr)
{
ptr->~T();//error: expected class-name before ';' token
}

};

我真的不知道如何修复这些错误。请帮忙,

谢谢。

最佳答案

为了确保您没有遗漏必要的内容,包括:<cstddef>对于 std::size_t<new>放置新的?

否则这些函数看起来是正确的。如果那是整个分配器,它还有其他缺陷,例如缺少必需的 typedef,address()max_size()方法,以及 rebind模板。


编辑:错误的唯一原因可能是您定义了函数式宏 T。

#define T(z) zzz

将使预处理器替换所有T()它遇到了,但留下了T后面没有括号。

您可以重命名模板参数。

关于c++ - GCC 4.2 模板奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com