Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Jul 2, 2001



Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js

Class Template auto_ptr and Arrays

The std::auto_ptr class template handles only a pointer to a single object. This is because it uses scalar delete, never delete[], to destroy the owned object. Therefore, binding auto_ptr to an array of objects would cause undefined behavior. Using of auto_ptr as a char pointer is a common mistake:
std::auto_ptr< char> pc (new char[1000];) // bad

In this example, the auto_ptr object is bound to an array of char allocated by new[]. Such an array must be deleted with delete[]. However, because auto_ptr calls delete when its destructor executes, the program's behavior is undefined.

Remember always to bind ats::auto_ptr to a pointer to a single object. If you're looking for an auto_ptr that handles arrays, you can find a custom version of it at the www.boost.org site.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date