public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor
@ 2013-08-05 14:44 redi at gcc dot gnu.org
2013-08-05 14:47 ` [Bug c++/58089] " redi at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: redi at gcc dot gnu.org @ 2013-08-05 14:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58089
Bug ID: 58089
Summary: expanding empty parameter pack as constructor
arguments requires accessible copy constructor
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
struct X
{
X() { }
private:
X(const X& r);
};
template <typename... Args>
void f(Args&&... args)
{
X t(args...);
}
int main()
{
f();
}
$ g++ -std=gnu++11 t.cc
t.cc: In instantiation of 'void f(Args&& ...) [with Args = {}]':
t.cc:18:7: required from here
t.cc:5:5: error: 'X::X(const X&)' is private
X(const X& r);
^
t.cc:12:16: error: within this context
X t(args...);
^
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/58089] expanding empty parameter pack as constructor arguments requires accessible copy constructor
2013-08-05 14:44 [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor redi at gcc dot gnu.org
@ 2013-08-05 14:47 ` redi at gcc dot gnu.org
2013-11-29 12:53 ` aaz@q-fu.com
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: redi at gcc dot gnu.org @ 2013-08-05 14:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58089
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Using list-initialization works fine:
X t{args...};
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/58089] expanding empty parameter pack as constructor arguments requires accessible copy constructor
2013-08-05 14:44 [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor redi at gcc dot gnu.org
2013-08-05 14:47 ` [Bug c++/58089] " redi at gcc dot gnu.org
@ 2013-11-29 12:53 ` aaz@q-fu.com
2015-01-20 17:48 ` paolo.carlini at oracle dot com
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: aaz@q-fu.com @ 2013-11-29 12:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58089
Andrey Zholos <aaz@q-fu.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aaz@q-fu.com
--- Comment #2 from Andrey Zholos <aaz@q-fu.com> ---
I also stumbled onto this bug, and bug 59141 is a duplicate.
It appears the empty parameter pack is expanded as t({}) rather than t().
There is a similar example in 14.5.3p6 that indicates obj should be value-
initialized (not copy-constructed), and clang accepts this code.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/58089] expanding empty parameter pack as constructor arguments requires accessible copy constructor
2013-08-05 14:44 [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor redi at gcc dot gnu.org
2013-08-05 14:47 ` [Bug c++/58089] " redi at gcc dot gnu.org
2013-11-29 12:53 ` aaz@q-fu.com
@ 2015-01-20 17:48 ` paolo.carlini at oracle dot com
2021-08-02 2:18 ` pinskia at gcc dot gnu.org
2021-08-02 14:00 ` redi at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: paolo.carlini at oracle dot com @ 2015-01-20 17:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58089
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ppluzhnikov at google dot com
--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> ---
*** Bug 59141 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/58089] expanding empty parameter pack as constructor arguments requires accessible copy constructor
2013-08-05 14:44 [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor redi at gcc dot gnu.org
` (2 preceding siblings ...)
2015-01-20 17:48 ` paolo.carlini at oracle dot com
@ 2021-08-02 2:18 ` pinskia at gcc dot gnu.org
2021-08-02 14:00 ` redi at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-02 2:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58089
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work| |7.0
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Seems fixed in GCC 7+.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/58089] expanding empty parameter pack as constructor arguments requires accessible copy constructor
2013-08-05 14:44 [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor redi at gcc dot gnu.org
` (3 preceding siblings ...)
2021-08-02 2:18 ` pinskia at gcc dot gnu.org
@ 2021-08-02 14:00 ` redi at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: redi at gcc dot gnu.org @ 2021-08-02 14:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58089
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Target Milestone|--- |7.0
Resolution|--- |FIXED
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Fixed by this commit:
* pt.c (tsubst_init): Set TARGET_EXPR_DIRECT_INIT_P.
From-SVN: r246953
The fix included a suitable testcase so we can close it.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-08-02 14:00 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-05 14:44 [Bug c++/58089] New: expanding empty parameter pack as constructor arguments requires accessible copy constructor redi at gcc dot gnu.org
2013-08-05 14:47 ` [Bug c++/58089] " redi at gcc dot gnu.org
2013-11-29 12:53 ` aaz@q-fu.com
2015-01-20 17:48 ` paolo.carlini at oracle dot com
2021-08-02 2:18 ` pinskia at gcc dot gnu.org
2021-08-02 14:00 ` redi at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).