perfect forwarding und funktionsaufruf
-
hab ich mal auf einem implementationsvorschlag bei cppreference gesehen.
inwiefern macht das sinn?
also...
forward<F>(f)(forward<A>(a)...);
wozu das erste forward?
verarsche?
-
#include <iostream> struct A { void operator()() & { std::cout << "Call by Lvalue\n"; } void operator()() && { std::cout << "Call by Rvalue\n"; } }; template <typename T> void invoke(T&& t) { std::forward<T>(t)(); } int main() { A a; invoke(a); invoke(std::move(a)); }
-
Oh fuck ja.
Ist das c++11?
Fuck ja.