Это может быть глупый вопрос, но я просто не уверен в ответе. Следующий код читает файл, и для каждой строки файла создается интеллектуальный указатель с помощью «new». Если интеллектуальный указатель будет использоваться в будущем, он сохраняется в списке, в противном случае он не сохраняется.
У меня такой вопрос: если интеллектуальный указатель не сохраняется, вызовет ли это потенциальную утечку памяти? Спасибо.
int main(){
.....;
std::list<SomeClass> aList;
while(inFile >> ss){
std::tr1::shared_ptr<SomeClass> aPtr(new SomeClass());
//do something in foo(aPtr) to aPtr,
//if aPtr will be used later, then it's stored in aList
//otherwise, it's not stored
foo(aPtr);
}
.....;
}