pnew
pnew() - 配置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; // このコンストラクタは呼ばれない!
my_class obj_2; // このコンストラクタは呼ばれない!
void setup() {
mwx::pnew(obj_1); // my_class obj_1; に相当
mwx::pnew(obj_2, 2); // my_class obj_2(2); に相当
...
}背景
最終更新