[LLVMbugs] [Bug 7056] New: Confusion by friend declaration of global template function

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed May 5 10:05:46 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=7056

           Summary: Confusion by friend declaration of global template
                    function
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: syntheticpp at gmx.net
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Found with Loki.

Disable definition in /include/loki/SmartPtr.h line 54:
//#define LOKI_ENABLE_FRIEND_TEMPLATE_TEMPLATE_PARAMETER_WORKAROUND

Build test/SmartPtr/main.cpp


main.cpp:1326:5: error: call to 'Release' is ambiguous
    Release( w1, pNull );
    ^~~~~~~
In file included from main.cpp:18:                                              
../../include/loki/SmartPtr.h:1386:21: note: candidate function
      [with $0 = BaseClass, OP1 = RefCounted, $2 = Loki::DisallowConversion,
KP1 = AssertCheck, SP1 = DefaultSPStorage, CNP1 = DontPropagateConst]
        friend void Release(SmartPtr<T1, OP1, CP1, KP1, SP1, CNP1>& sp,
                    ^
../../include/loki/SmartPtr.h:1586:17: note: candidate function [with T =
BaseClass, OP = RefCounted, CP = Loki::DisallowConversion, KP = AssertCheck, SP
= DefaultSPStorage, CNP = DontPropagateConst]    
    inline void Release(SmartPtr<T, OP, CP, KP, SP, CNP>& sp,
                ^


The first declaration is only a friend declaration.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list