IBM Support

LI75119: TEMPLATE SPECIALIZATION CONSTRUCTOR ERROR

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When compiling the following test case, the compiler claims the
    two constructors are the same and issues a duplicate definition
    error.
    
    Error Message:
    $ xlC -c test.cpp
    "test.cpp", line 16.9: 1540-0401 (S) The member
    "TypeBase<std::string,TYPE>::TypeBase<std::string,TYPE>(const
    TypeBase &)" is already declared.
    "test.cpp", line 14.18: 1540-0425 (I)
    "TypeBase<std::string,TYPE>" is defined on line 14 of
    "test.cpp".
    
    
      =======  TEST CASE  =======
    
    #include <string>
    
    template <typename BUILTIN, typename TYPE>
        class TypeBase
        {
            explicit TypeBase (const BUILTIN & value) { }
    
            TypeBase (const TypeBase & value) { }
        };
    
    template <typename TYPE>
        class TypeBase<std::string, TYPE>
        {
            explicit TypeBase (const std::string & value) { }
    
            TypeBase (const TypeBase & value) { }
        };
    
    class MyType : public TypeBase<std::string, MyType> { };
    

Local fix

  • N/A
    

Problem summary

  • This problem may appear when a partial specialization has a copy
    constructor and at least one other constructor.
    The compiler claims the 2 constructors are the same and issues a
    duplicate definition error.
    

Problem conclusion

  • The problem was the result of a logic error in a query looking
    for injected class names in a partial specialization, this has
    been resolved.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI75119

  • 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

    2009-12-01

  • Closed date

    2009-12-01

  • Last modified date

    2009-12-01

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

    IZ56121

  • 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

[{"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:
14 October 2021