根据C ++ 14标准18.2.1.1草案,隐式定义了以下全局函数:
void operator delete(void* ptr, std::size_t size) noexcept;
但是,gcc 4.9.0不能接受以下代码,但可以用clang 3.4编译。
int main()
{
// error: invalid conversion from 'int' to 'void*'
::operator delete(new int, 1);
}
这是gcc 4.9.0的缺陷吗?
答案 0 :(得分:3)
gcc 4.9.0声称完全支持C ++ 14
gcc 4.9.0没有提出此类声明。您引用的operator delete
定义已作为sized deallocation提案的一部分添加,该提案在gcc中为as yet unimplemented。
答案 1 :(得分:0)
根据OP a previous revision:
工具链是gcc 4.9.0而不是clang 3.4。