[Bug libstdc++/69853] An inheriting constructor of the class that inherited std::tuple isn't called correctly

2016-02-17 Thread ville.voutilainen at gmail dot com
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

2016-02-17 Thread ville.voutilainen at gmail dot com
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

2017-07-25 Thread redi at gcc dot gnu.org
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

2017-03-30 Thread ville.voutilainen at gmail dot com
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

2017-03-31 Thread redboltz at gmail dot com
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.