2015-10-28 15 views
5

Đối với phần mềm, tôi phải tránh bất kỳ việc sử dụng bộ nhớ nào trong heap, và chỉ dựa vào bộ nhớ được cấp phát bộ nhớ. Sau đó, điều này ngăn cản tôi sử dụng bất kỳ thùng chứa tiêu chuẩn C++ nào, chẳng hạn như vectơ, bản đồ, chuỗi (well, basic_string), mà tôi thực sự muốn sử dụng để dễ dàng phát triển và thao tác dữ liệu.Stack allocator cho C++ 03 standard containers

Tôi đã tìm thấy (nhiều) triển khai bộ phân bổ ngăn xếp, chẳng hạn như this one tự tham chiếu hai số khác hoặc this one từ crom.

Nhiều người trong số họ không hoàn toàn tuân thủ tiêu chuẩn hoặc dựa vào C++ 11 (và tôi bị kẹt với C++ 03 vào lúc này, thật đáng buồn). Bạn có bất kỳ thông tin phản hồi về một phân bổ stack đã tồn tại tốt cho C++ 03 hoặc tôi nên thích ứng với một trong những điều trên?

Cảm ơn!

+4

Howard Hinnant đưa ra một [C++ 03 bolierplate cho bộ cấp phát của mình] (http://howardhinnant.github.io/allocator_boilerplate.html) cũng thấy [Câu hỏi về phân bổ stack của Hinnant] (http://stackoverflow.com/ q/11648202/1708801) –

Trả lời

3

Howard Hinnant short_alloc.h (see also here) là một khởi đầu khá tốt (bạn sẽ cần phải thêm bản mẫu C++ 03, xem here).

Tất nhiên, điều này sẽ vẫn đi đến heap nếu nó hết bộ nhớ, thay thế là để ném std::bad_alloc.

Các vấn đề liên quan