How to construct a class from a pack in C++?

I am trying to initialize a class with a pack passed as an argument to my function. Here is what I got so far: struct Vec3 { float x, y, z; }; template<typename _Ty, typename… Args> __forceinline _Ty construct_class(Args&&… arguments) { return _Ty(arguments…); } // here I am trying to construct a Vec3 by calling… Read More How to construct a class from a pack in C++?

Why does std::forward not work in the lambda body?

#include <utility> void f(auto const& fn1) { { auto fn2 = std::forward<decltype(fn1)>(fn1); auto fn3 = std::forward<decltype(fn2)>(fn2); // ok fn3(); } [fn2 = std::forward<decltype(fn1)>(fn1)] { auto const fn3 = fn2; auto fn4 = std::forward<decltype(fn3)>(fn3); // ok fn4(); auto fn5 = std::forward<decltype(fn2)>(fn2); // error fn5(); }(); } int main() { f([] {}); } godbolt demo Why does… Read More Why does std::forward not work in the lambda body?