[LLVMbugs] [Bug 8173] New: clang++ (rev. 114175) fails inference of struct type template param from pointer to overloaded member function

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Sep 17 09:06:51 PDT 2010


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

           Summary: clang++ (rev. 114175) fails inference of struct type
                    template param from pointer to overloaded member
                    function
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: whatwasthataddress at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Created an attachment (id=5506)
 --> (http://llvm.org/bugs/attachment.cgi?id=5506)
Reduced program that exercises the problem.

clang++ fails to compile this simple program.  g++ and MSVC do.  Also attached.

#include <boost/bind.hpp>
#include <boost/signal.hpp>


struct A
{
    boost::signal<void (char)> signal;
};

class B
{
public:
    void slot (char) {}
    void slot (double) {}
};

template <typename ReturnType,
          typename Combiner,
          class MemberObj,
          class TargetObj,
          typename Arg1>
inline boost::signals::connection
connect (boost::signal<ReturnType (Arg1), Combiner> &signalObj,
         TargetObj* target,
         ReturnType (MemberObj:: *fn) (Arg1),
         int group = 0)
{
    return signalObj.connect(group, boost::bind(fn, target, _1));
}

int main()
{
    A a;
    B* mB = new B;

    ::connect(a.signal, mB, &B::slot);

    return 0;
}

-- 
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