[LLVMbugs] [Bug 15013] New: Compilation problem using function pointer as non-type template parameter
    bugzilla-daemon at llvm.org 
    bugzilla-daemon at llvm.org
       
    Sun Jan 20 15:12:23 PST 2013
    
    
  
http://llvm.org/bugs/show_bug.cgi?id=15013
             Bug #: 15013
           Summary: Compilation problem using function pointer as non-type
                    template parameter
           Product: clang
           Version: 3.2
          Platform: PC
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: hartmut.kaiser at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified
This code fails to compile:
template <typename A, void (A::*F)()>
struct T {};
struct foo
{
    void bar() const {}
    typedef T<foo const, &foo::bar> bar_type;
};
int main()
{
    return 0;
}
even if it should (and it compiles with gcc, VC, comeau).
The generated error is:
test.cpp:7:22: error: non-type template argument of type 'void (foo::*)()
const' cannot be converted to a value of type 'void (const foo::*)()'
typedef T<foo const, &foo::bar> bar_type;
                     ^~~~~~~~~
test.cpp:1:33: note: template parameter is declared here
template <typename A, void (A::*F)()>
-- 
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