Groups | Search | Server Info | Login | Register
Groups > de.comp.lang.iso-c++ > #2131
| 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> |
> #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 | Next — Previous in thread | Next in thread | Find similar
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