[LLVMbugs] [Bug 23461] New: SFNAE-based constructors error-out when accessed via constructor inheritance
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri May 8 15:59:25 PDT 2015
https://llvm.org/bugs/show_bug.cgi?id=23461
Bug ID: 23461
Summary: SFNAE-based constructors error-out when accessed via
constructor inheritance
Product: clang
Version: trunk
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: C++11
Assignee: unassignedclangbugs at nondot.org
Reporter: oneill+llvmbugs at cs.hmc.edu
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 14304
--> https://llvm.org/bugs/attachment.cgi?id=14304&action=edit
Sample code that shows the failure in action.
If we compile the attached code, with
/some/where/llvm.236909/bin/clang++ -std=c++11 -o sfnae-fail sfnae-fail.cpp
we get:
/some/where/llvm.236909/bin/../include/c++/v1/random:1867:28: error: no type
named 'type' in 'std::__1::enable_if<false, void>'; 'enable_if' cannot be
used to disable this declaration
...enable_if<__is_seed_sequence<_Sseq,
linear_congruential_engine>::value>:...
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sfnae-fail.cpp:7:19: note: in instantiation of member function
'std::__1::linear_congruential_engine<unsigned int, 48271, 0,
2147483647>::linear_congruential_engine' requested here
using Engine::Engine; // Inherited constructor
^
sfnae-fail.cpp:21:49: note: while substituting deduced template arguments into
function template 'inherited' [with _Sseq = int]
inherited<std::default_random_engine> fails(0);
^
1 error generated.
The issue seems to be related to SFNAE not working when a constructor is
inherited. If we access the constructor directly (i.e., no through
inheritance), it works fine. Similarly, if we comment out the SFNAE
constructor (which isn't even the one we want in this code), it compiles fine
with constructor inheritance.
The failure occurs on both trunk and 3.6 (and earlier). GCC 5.1 and earlier
show no issue with the code.
--
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/20150508/01234da1/attachment.html>
More information about the llvm-bugs
mailing list