我试图通过从另一个方法Accesses()调用方法NextAccess()从文件读取N条跟踪线。以下是他们的代码段:
bool NextAccess( Trace* nextAccess )
{
// Accesses a trace file and retrieves a trace line into nextAccess
.....
}
int Accesses( unsigned int N, vector<unique_ptr<Trace>>& nAccesses )
{
int successes;
Trace *nextLine;
successes = 0;
for( unsigned int i = 0; i < N; i++ )
{
nextLine = new Trace( );
unique_ptr<Trace> next;
if( NextAccess(nextLine))
{
next = std::make_unique<Trace>(nextLine);
nAccesses.push_back(std::move(next));
successes++;
}
}
return successes;
}
在if部分的第一行启用C ++ 14的情况下运行时出现以下错误:
error: ‘make_unique’ is not a member of ‘std’
error: expected primary-expression before ‘>’ token
此代码是否会导致内存泄漏,以及如何纠正此代码? NextAccess()是一种无法更改原始指针的参数类型的方法,因为它是较大的相互依赖代码的一部分。请提出任何解决方案。