A fix is available
APAR status
Closed as program error.
Error description
The order that constructors are declared in a class is affecting constructor resolution for a constructor that accepts auto_ptr as a parameter. If the two constructor declarations in the following test case are swapped, the issues does not occur: === TEST CASE === #include <memory> class Test { public: Test(const Test&); Test(std::auto_ptr<int> func); }; std::auto_ptr<int> f(); void func() { Test test( f() ); } "test.cpp", line 14.8: 1540-1260 (S) An object of type "Test" cannot be constructed from an rvalue of type "std::auto_ptr<int>".
Local fix
Swap constructor order positioning.
Problem summary
PROBLEM DESCRIPTION: An internal cache in the compiler stores a set of conversions without user-defined conversions in the first pass. This limits the conversion sequences chosen in the second pass. USERS AFFECTED: Users with user-defined conversion sequence with an explicit copy constructor defined inside of the class.
Problem conclusion
The compiler now stores user-defined conversions in the internal cache. The issue is now resolved.
Temporary fix
Comments
APAR Information
APAR number
LI78457
Reported component name
XL C/C++ FOR LI
Reported component ID
5725C7300
Reported release
D10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-02-25
Closed date
2015-02-25
Last modified date
2015-02-25
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL C/C++ FOR LI
Fixed component ID
5725C7300
Applicable component levels
RD10 PSN IV63647
UP06/09/13
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"13.1","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021