Tôi có một phương pháp phân bổ bộ nhớ cho một đối tượng và sau đó gọi hàm khởi tạo của nó - một bộ cấp phát bộ nhớ.Trộn pass-by-reference và pass-by-value cho hàm mẫu variadic hợp lệ?
template <class T, typename... Arguments>
inline T* AllocateObject(Arguments... args) { return new (InternalAllocate(sizeof(T))) T(args...); }
Có hợp lệ khi sử dụng chức năng này để trộn lẫn giá trị và tham chiếu không? Ví dụ, phân bổ một lớp với một hàm tạo với một số giá trị và một số tham chiếu. Nó biên dịch, nhưng tôi không chắc nó có tác dụng phụ khó chịu hay không.
Bạn có lẽ nên sử dụng 'T (std :: mong (args) .. .) ', nhưng bên cạnh đó bạn nên ổn. –
nijansen