Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.iso-c++ > #2131

Re: template- & copy-c'tor

Path csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From Thomas Dorner <td-dclic01@th-dorner.de>
Newsgroups de.comp.lang.iso-c++
Subject Re: template- & copy-c'tor
Date Wed, 23 Oct 2019 18:30:41 +0200
Organization solani.org
Lines 31
Sender "Moderation de.comp.lang.iso-c++" <dclisocpp+mod@elaboris.de>
Approved Markus Schaaf <dclisocpp+mod@elaboris.de>
Message-ID <6elftb5sr2.fsf@th-dorner.de> (permalink)
References <qon71l$f66$1@dont-email.me>
Reply-To td-dclic01@th-dorner.de
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
Injection-Info reader02.eternal-september.org; posting-host="b527dc1d75404f015b67ca1b5a635d4f"; logging-data="29329"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+rAlMQslZ8sy2Kz7fGcVXD"
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Xref csiph.com de.comp.lang.iso-c++:2131

Show key headers only | View raw


> #include <stdio.h>
>
> struct A {
>     A() {}
>     template< class E > A( E& ) { fputs( "Ouch!\n", stderr ); }

Dein C'tor template ist nicht const, der default C'tor schon.  In Deinen
Funktionen verwendest Du auch nirgends const.  Ich bin mir nicht ganz
sicher, aber das könnte schon der Grund sein.  Wenn Du Dein E& const
machst, funktioniert es wie erwartet (hier mit G++ 7.4).

> };
>
> void foo( A ) {}
> void bar( A a ) { foo( a ); }
>
> int main()
> {
>     bar( A{} );
> }

> Andererseits habe ich keine Lust [...] einen Copy-C'tor
> hinzuschreiben.

Du könntest einfach explizit die Default Implementierung einfordern,
wegen nicht const brauchst Du allerdings beide Varianten:

    A(const A&) = default;
    A(A&) = default;

Viele Grüße, Thomas

Back to de.comp.lang.iso-c++ | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

template- & copy-c'tor Markus Schaaf <mschaaf@elaboris.de> - 2019-10-22 17:25 +0200
  Re: template- & copy-c'tor Thomas Dorner <td-dclic01@th-dorner.de> - 2019-10-23 18:30 +0200
  Re: template- & copy-c'tor Markus Schaaf <mschaaf@elaboris.de> - 2019-10-23 19:29 +0200

csiph-web