Fixes are available
APAR status
Closed as program error.
Error description
The following testcase reproduces the error message: ========================b.cpp=========================== template<typename Other, int Rows=Other::Rows> struct EI { typedef int ResultType; }; struct Matrix { enum { Rows = 1 }; }; struct Transform { template<typename OtherDerived> const typename EI<OtherDerived>::ResultType operator * (const OtherDerived &other); }; void test() { Transform t0; Matrix m0; t0 * m0; } ========================b.cpp=========================== Compile b.cpp file: xlc -c b.cpp "b.cpp", line 24.7: 1540-0218 (S) The call does not match any parameter list for "operator*". "b.cpp", line 17.3: 1540-1283 (I) "template <class OtherDerived> Transform::operator*(const OtherDerived &)" is not a viable candidate. "b.cpp", line 24.7: 1540-0130 (I) "Other" is not declared. "b.cpp", line 24.7: 1540-0700 (I) The previous message was produced while processing "operator*".
Local fix
N/A
Problem summary
For default template arguments, template argument substitution only substitutes the last part of a qualified name.
Problem conclusion
Changing name substitution routine to take the entire qualified name into account.
Temporary fix
Comments
APAR Information
APAR number
LI75862
Reported component name
XL C/C++ SLES10
Reported component ID
5724U8300
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-01-27
Closed date
2011-01-27
Last modified date
2011-01-27
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++ SLES10
Fixed component ID
5724U8300
Applicable component levels
RA10 PSN LI75628
UP06/09/13
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
15 October 2021