【发布时间】:2013-10-26 23:20:19
【问题描述】:
我有一个方法,它为一个对象分配内存,然后调用它的构造函数——一个内存分配器。
template <class T, typename... Arguments>
inline T* AllocateObject(Arguments... args) { return new (InternalAllocate(sizeof(T))) T(args...); }
使用此函数混合传递值和传递引用是否有效?例如,使用带有一些按值和一些按引用的构造函数分配一个类。它可以编译,但我不确定它是否有任何令人讨厌的副作用。
【问题讨论】:
-
你应该使用
T(std::forward<Arguments>(args)...),但除此之外你应该没问题。
标签: c++ templates c++11 variadic-templates placement-new