AUTOSAR C++14 Rule A18-1-3
The std::auto_ptr shall not be used
Description
Rule Definition
The std::auto_ptr shall not be used.
Rationale
The std::auto_ptr is a type of class template that predates the
        introduction of move semantics in the C++11 language standard. When you copy a source
          std::auto_ptr object into a target object, the source object is
        modified. The compiler transfers the ownership of the resources in the source object to the
        target object and sets the source object to a null-pointer. Because of this unusual copy
        syntax, using the source object after the copy operation might lead to unexpected behavior.
        Consider this code snippet where the use of std::auto_ptr results in a
        segmentation fault.
void func(auto_ptr<int> p) {
	cout<<*p;
	//...
}
int main()
{
	std::auto_ptr<int> s = new int(1);
	//..
	func(s); // This call makes s a null-pointer
	//...
	func(s); // exception, because s is null
	return 1;
}The first call to func() copies the source
          std::auto_ptr object s to the argument
          p, transfers ownership of the pointer to p, and sets
          s to a null pointer. When func() is called again,
        the compiler tries to access the null-pointer s, causing a segmentation
        fault.
The std::auto_ptr type objects are also incompatible with any generic
        code that expects a copy operation to not invalidate the source object, such as the standard
        template library (STL). Avoid using std::auto_ptr. It is deprecated in
        C++11 and removed from C++17. The C++11 language standard introduces
          std::unique_ptr as a safer replacement for
          std::auto_ptr. Use std::unique_ptr instead of
          std::auto_ptr.
Polyspace Implementation
Polyspace® flags all instances of std::auto_ptr in your code, other
        than those in C style arrays.
Troubleshooting
If you expect a rule violation but Polyspace does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
| Group: Language support library | 
| Category: Required, Automated | 
Version History
Introduced in R2020a