Fixes are available
APAR status
Closed as program error.
Error description
The compiler generates an incorrect template message for the following test case: =====Compile Command: xlC -c b.cc =====Testcase: $cat b.cc template <int, int> struct Tensor {}; template <int dim> class Tensor<0,dim> {}; template <int dim> struct X { template <int spacedim> void foo (Tensor<spacedim-dim,spacedim>) {} }; template void X<1>::foo (Tensor<1-1,1>); $ =====Action Output: $xlC -c b.cc "b.cc", line 10.21: 1540-0288 (S) The function template parameter of type "Tensor<spacedim-(int) (1),spacedim>" cannot be initialized with an argument of type "Tensor<0,1>". $ =====Expected Output: Should compile without any errors.
Local fix
n/a
Problem summary
USERS AFFECTED: The problem may be seen where a non-type template argument is used in a non-deduced context before arguments using it in a deducable context. PROBLEM DESCRIPTION: The use of a non-type template argument in a non-deduced context was stopping argument deduction in later arguments.
Problem conclusion
The above compiler problem has been resolved.
Temporary fix
Comments
APAR Information
APAR number
LI77065
Reported component name
XL C/C++ FOR BG
Reported component ID
5799AG100
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-11-23
Closed date
2012-11-23
Last modified date
2012-11-23
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 BG
Fixed component ID
5799AG100
Applicable component levels
RC10 PSN IV19832
UP06/09/13
Rate this page:
Average rating
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.