Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Stefan Reuther Newsgroups: de.comp.lang.iso-c++ Subject: Re: rvalue ref. Date: Fri, 18 May 2018 19:24:25 +0200 Organization: A noiseless patient Spider Lines: 33 Sender: "Moderation de.comp.lang.iso-c++" Approved: White-List Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: h2725194.stratoserver.net; posting-host="fbc14ad2e92136dc82d88f3858d561c1"; logging-data="16895"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19VruY8Wphjz9Stm5vqqkyR" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Hamster/2.1.0.1538 Xref: csiph.com de.comp.lang.iso-c++:2072 Hi, Am 17.05.2018 um 08:41 schrieb Markus Donath: > Ich benötige eine Fuktion, die einen Parameter einmal als const > reference und einmal als rvalue reference hat: > > void test(const t& x); > void test(t&& x); > > Die Funktionen würden exakt das gleiche tun. Mir ist gerade nicht eingängig, wie die Funktionen tatsächlich genau das gleiche tun können wollen. Die erste soll doch das Objekt unverändert lassen, während die zweite Dinge aus dem Objekt heraus moven können soll. Das mag zwar im Quelltext dann gleich aussehen, macht aber was anderes. > void test(const t& x) > { > t x_(x); > test(std::forward(x_); > } > > Macht man das so oder gibt es was besseres? Mir fehlt ja schon seit geraumer Zeit ein template void test(Q t& x); für diesen und andere Zwecke. Stefan