pnew
pnew() - Simplify the description of placement new
template <class T, class... Args>
T* pnew(T& obj, Args&&... args) {
return (T*)new ((void*)&obj) T(std::forward<Args&&>(args)...);
}class my_class {
int _a;
public:
my_class(int a = -1) : _a(a) {}
};
my_class obj_1; // This constructor will not be called!
my_class obj_2; // This constructor will not be called!
void setup() {
mwx::pnew(obj_1); // my_class obj_1;
mwx::pnew(obj_2, 2); // my_class obj_2(2);
...
}background
最終更新