[Bug libstdc++/69853] An inheriting constructor of the class that inherited std::tuple isn't called correctly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69853 Ville Voutilainen changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2016-02-17 CC||ville.voutilainen at gmail dot com Assignee|unassigned at gcc dot gnu.org |ville.voutilainen at gmail dot com Ever confirmed|0 |1 --- Comment #1 from Ville Voutilainen --- I'll see what I can do.
[Bug libstdc++/69853] An inheriting constructor of the class that inherited std::tuple isn't called correctly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69853 Ville Voutilainen changed: What|Removed |Added Status|ASSIGNED|SUSPENDED --- Comment #2 from Ville Voutilainen --- The fix for http://cplusplus.github.io/LWG/lwg-active.html#2549 breaks this code. But that breakage looks sane, because it prevents implicit base-to-derived conversions that create temporaries. Consider the following code, which is valid on 5.x but ill-formed on 6: #include #include using std::tuple; template struct mytuple : tuple { using tuple::tuple; }; void f(const mytuple& ft) { std::cout << "address of ft: " << (void*)(&ft) << std::endl; } int main() { tuple t; std::cout << "address of t: " << (void*)(&t) << std::endl; f(t); } I'll add this as additional motivation for LWG 2549. Suspending the bug for now, until LWG gives guidance.
[Bug libstdc++/69853] An inheriting constructor of the class that inherited std::tuple isn't called correctly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69853 Jonathan Wakely changed: What|Removed |Added CC||tuwwcn at gmail dot com --- Comment #5 from Jonathan Wakely --- *** Bug 81527 has been marked as a duplicate of this bug. ***
[Bug libstdc++/69853] An inheriting constructor of the class that inherited std::tuple isn't called correctly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69853 Ville Voutilainen changed: What|Removed |Added Status|SUSPENDED |RESOLVED Resolution|--- |INVALID --- Comment #3 from Ville Voutilainen --- It seems to me that the current semantics of inherited constructors cause the base constructor that would take a tuple to not be inherited. clang+libc++ agree. I think this is thus invalid.
[Bug libstdc++/69853] An inheriting constructor of the class that inherited std::tuple isn't called correctly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69853 --- Comment #4 from Takatoshi Kondo --- Thank you for the comment. I understand. I use perfect forwarding in this case.