我知道,我应该用delete []我使用后new [],所以使用auto_ptr与new []没有这样的好主意.
但是,在调试时delete [](使用Visual Studio 2005),我注意到调用进入了一个如下所示的函数:
void operator delete[]( void * p )
{
RTCCALLBACK(_RTC_Free_hook, (p, 0))
operator delete(p);
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着,[]Visual C++上的语法丢失了?如果是这样,为什么?是否可以减轻开发人员记住正确语法的负担?
假设一个较大的模板库包含大约100个文件,其中包含大约100个模板,总共超过200,000行代码.一些模板使用多重继承来使库本身的使用相当简单(即从一些基本模板继承并且只需要实现某些业务规则).
所有存在的(长达数年),"工作"并用于项目.
但是,使用该库编译项目会占用越来越多的时间,并且需要花费相当长的时间来查找某些错误的源代码.修复通常会导致意外的副作用或非常困难,因为某些相互依赖的模板需要更改.由于功能的庞大,测试几乎是不可能的.
现在,我真的想简化架构以使用更少的模板和更专业的小类.
是否有任何可靠的方法来完成这项任务?什么是一个好的开始?