IBM Support

IV37950: TEMPLATE NOT ACCEPTING DEFAULT PARAM FUNCTION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An implicit template instantiation with explicit specialization,
    using a pointer to a function with a default parameter is
    encountering an invalid error during compile.
    
    
         =====  TEST CASE  =====
    
    template <typename T>
    struct myTemplate       { typedef T type; };
    
    template <typename T>
    struct myTemplate<T *>  { typedef T type; };
    
    void defaultarg(int = 0);
    
    template <typename T>
    void templateFunction(T)
    {
       typedef typename myTemplate<T>::type template_type;
    }
    
    void test()
    {
       templateFunction(&defaultarg);
    }
    
    
    $ xlC -c test.cpp
    1540-1111 (S) Only function declarations can have default
    arguments.
    "test.cpp", line 12.13: 1540-0700 (I) The previous message was
    produced while processing "struct myTemplate<void (*)(int)>".
    "test.cpp", line 10.6: 1540-0700 (I) The previous message was
    produced while processing "templateFunction<void (*)(int)>(void
    (*)(int))".
    "test.cpp", line 17.9: 1540-0700 (I) The previous message was
    produced while processing "test()".
    $
    

Local fix

  • The issue can be worked around by using an explicit template
    instantiation.
    

Problem summary

  • PROBLEM DESCRIPTION:
    Template argument deduction including default arguments in an
    invalid context.
    
    USERS AFFECTED:
    The problem is specific to the use of argument deduction when
    passing a function type to a template function, where the
    function type has a default argument.
    

Problem conclusion

  • The problem has been resolved.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV37950

  • Reported component name

    XL C/C++ FOR AI

  • Reported component ID

    5725C7200

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-03-12

  • Closed date

    2013-03-12

  • Last modified date

    2013-03-13

  • APAR is sysrouted FROM one or more of the following:

    IV33204

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    XL C/C++ FOR AI

  • Fixed component ID

    5725C7200

Applicable component levels

[{"Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH3R","label":"XL C\/C++ for AIX"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.1"}]

Document Information

Modified date:
03 October 2021