Liên quan đến lớp boost::circular_buffer,Nhà xây dựng nhận/thiết lập trình phân bổ mặc định ở đâu?
tôi có thể nhanh chóng một đơn giản như sau:
lớp#include<boost/circular_buffer.hpp>
int main() {
boost::circular_buffer<double> buffer;
}
Các circular_buffer được templatized với
template<typename T, typename Alloc>
class circular_buffer {
...
typedef Alloc allocator_type;
...
}
và tôi tin rằng các nhà xây dựng được gọi là
explicit circular_buffer(const allocator_type & = allocator_type()) noexcept;
Những gì tôi không hiểu là nơi buffer
là nhận được phân bổ mặc định của nó? Tài liệu nêu rõ rằng, nếu tài liệu không được cung cấp rõ ràng, đối tượng Default Alloc là std::allocator<T>
, nhưng tôi không thấy vị trí này đang được đặt. Tôi không cố gắng thay đổi nó, tôi chỉ cố gắng hiểu thiết kế của lớp này từ một điểm C++/kĩ thuật phần mềm.
Cảm ơn, tôi đã không nhận ra rằng có một tiêu đề 'circular_buffer_fwd.hpp' được bao gồm. Các tài liệu không đề cập đến nó, nhưng tôi thấy nó ngay bây giờ sau khi nhìn trực tiếp vào tiêu đề trên máy của tôi. – idWinter