Groups | Search | Server Info | Login | Register


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

Re: template- & copy-c'tor

From Thomas Dorner <td-dclic01@th-dorner.de>
Newsgroups de.comp.lang.iso-c++
Subject Re: template- & copy-c'tor
Date 2019-10-23 18:30 +0200
Organization solani.org
Message-ID <6elftb5sr2.fsf@th-dorner.de> (permalink)
References <qon71l$f66$1@dont-email.me>

Show all headers | 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