[LLVMbugs] [Bug 19936] New: Templates, multiple declarations, decltype and operator overloading
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Tue Jun 3 12:46:28 PDT 2014
http://llvm.org/bugs/show_bug.cgi?id=19936
Bug ID: 19936
Summary: Templates, multiple declarations, decltype and
operator overloading
Product: clang
Version: 3.4
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: C++11
Assignee: unassignedclangbugs at nondot.org
Reporter: royertiago at hotmail.com
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 12600
--> http://llvm.org/bugs/attachment.cgi?id=12600&action=edit
Rejected code.
The attached code do not compile under clang 3.4-1ubuntu1.
$ clang file.cpp -std=c++11
file.cpp:20:5: error: call to 'operator*' is ambiguous
...
However, the code compiles if either:
- Lines 7-9 are removed.
- Lines 8 and 12 are replaced with "C< T >".
- operator* is replaced with operator/ in lines 9, 13 and 20.
- The code
template< typename T >
using Result = C< decltype( (*(T*)0) * (*(T*)0) ) >;
is inserted after the class definition, and lines 8 and 12 replaced with
"Result<T>".
Since this seems specific to operator*, I believe is a compiler bug.
(Sorry if bad english...)
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140603/c41095e2/attachment.html>
More information about the llvm-bugs
mailing list