[LLVMbugs] [Bug 14525] New: Failed template instantiation with const object and const member function
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Dec 6 11:36:34 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=14525
Bug #: 14525
Summary: Failed template instantiation with const object and
const member function
Product: clang
Version: 3.1
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: enhancement
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: john.duncan at oracle.com
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 9647
--> http://llvm.org/bugs/attachment.cgi?id=9647
complete example
I am reporting this against:
Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
In the snippet below, clang compiles the nonConst wrapper but not the const
wrapper:
int nonConstMethod_wrapper(int i) {
typedef NativeMethodCall_1_<int, API, int> NCALL;
NCALL ncall(& API::nonConstMethod);
return ncall.stub(i);
}
int ConstMethod_wrapper(int i) {
typedef NativeMethodCall_1_<int, const API, int> NCALL;
NCALL ncall(& API::constMethod);
return ncall.stub(i);
}
For a full example, compiling the attached file fails with:
template-example.cc:43:8: error: no matching constructor for initialization of
'NCALL' (aka
'NativeMethodCall_1_<int, const API, int>')
NCALL ncall(& API::constMethod);
^ ~~~~~~~~~~~~~~~~~~
template-example.cc:16:7: note: candidate constructor (the implicit copy
constructor) not viable: no known
conversion from 'int (API::*)(int) const' to 'const
NativeMethodCall_1_<int, const API, int>' for 1st
argument;
class NativeMethodCall_1_
^
template-example.cc:24:3: note: candidate constructor not viable: no known
conversion from
'int (API::*)(int) const' to 'Method_T' (aka 'int (const API::*)(int)')
for 1st argument;
NativeMethodCall_1_<R, C, A0>(Method_T m) :
^
In my very small team, we believe the standard allows both wrappers, and our
experience is that both gcc and Visual Studio support them. (Sun Studio 12
does not, but we've filed a bug with them, too).
--
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