'operator new'的第一个形式参数必须'size_t'
first formal parameter to 'operator new' must be 'size_t'
我得到这个错误" 'operator new'的第一个形式参数必须是'size_t'"当我尝试像这样编译SMTH时:
void* operator new(MyStd::UInt);
我使用visual studio 2013 express在64位机器上运行。
有谁知道,为什么这个错误发生?
如果您需要进一步的信息,请告诉我……这个项目是巨大的!正是错误信息所说的:第一个参数必须是类型为size_t
的
错误说明了一切。operator new
的第一个参数必须为std::size_t
类型,您可以使用其他类型
除了它不能,真的,因为std::size_t
是一个类型定义;它必须具有std::size_t
被定义为的类型。的最简单的方法是将其声明为std::size_t
。这在过去是有效的:大概,在过去,MyStd::UInt
是与std::size_t
相同类型的类型定义。现在,其中一个类型定义发生了变化。只需声明operator new
的第一个参数为size_t
,将自动成为正确的类型;声明它是其他任何东西,并且您猜测std::size_t
是如何声明的(可以更改)从一个实现到另一个实现,甚至从一个版本到另一个)。
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 函数调用中参数的顺序重要吗
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- 如何在没有参数的情况下实现返回双向链表大小的函数?int size() const.
- 如何在实现vector时使用C++"size()"作为函数的参数
- C++ std::string length() 或 size() 不适用于方法参数
- 初始化私有成员数组w/size作为类初始化参数
- C++模板,vector.size用于默认参数定义
- 编译器如何处理这个没有size参数的模板化函数
- 错误 C2664: 'cv::Mat::Mat(int,int,int)' : 无法将参数 1 从 'cv::Size' 转换为 'int'
- 为什么size不是std::initializer_list的模板参数?