Nếu tôi làm điều này: -do std :: function and std :: bind thực hiện phân bổ bộ nhớ động?
class Thing
{
...
void function (const std::string& message);
};
std::list<std::function<void()>> work;
và trong một số thành viên của "Thing"
work.push_back(std::bind(&Thing::function, this, "Hello"));
Có hai cuộc gọi đến std :: ràng buộc hoặc việc sử dụng std :: chức năng <> nguyên nhân bất kỳ phân bổ bộ nhớ động nào bằng cách sử dụng mới hay cách khác? Hoặc là tất cả lưu trữ được phân bổ vào thời gian biên dịch? Nếu tiêu chuẩn không nói bất cứ điều gì, những gì về trong visual studio 2012 như chương trình của tôi sẽ chỉ cần xây dựng trên đó, và hiệu quả tôi có lẽ cần phải tránh phân bổ bộ nhớ động ở nơi tôi đang nghĩ đến việc sử dụng cơ chế này.
"vì hiệu quả Tôi có thể" Bạn không nên giả định về hiệu quả như vậy. – slaphappy
Sử dụng 'std :: list' sẽ gây ra cấp phát bộ nhớ mỗi khi bạn thêm một mục vào danh sách. –
Ahahahahahaha tránh phân bổ động trong khi sử dụng std :: list –