...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
namespace boost { template<typename T, typename Alloc> class circular_buffer; template<typename T, typename Alloc> bool operator==(const circular_buffer< T, Alloc > &, const circular_buffer< T, Alloc > &); template<typename T, typename Alloc> bool operator<(const circular_buffer< T, Alloc > &, const circular_buffer< T, Alloc > &); template<typename T, typename Alloc> bool operator!=(const circular_buffer< T, Alloc > &, const circular_buffer< T, Alloc > &); template<typename T, typename Alloc> bool operator>(const circular_buffer< T, Alloc > &, const circular_buffer< T, Alloc > &); template<typename T, typename Alloc> bool operator<=(const circular_buffer< T, Alloc > &, const circular_buffer< T, Alloc > &); template<typename T, typename Alloc> bool operator>=(const circular_buffer< T, Alloc > &, const circular_buffer< T, Alloc > &); template<typename T, typename Alloc> void swap(circular_buffer< T, Alloc > &, circular_buffer< T, Alloc > &); }
namespace boost { template<typename T, typename Alloc> class circular_buffer_space_optimized; // Test two space optimized circular buffers for equality. template<typename T, typename Alloc> bool operator==(const circular_buffer_space_optimized< T, Alloc > & lhs, const circular_buffer_space_optimized< T, Alloc > & rhs); // Lexicographical comparison. template<typename T, typename Alloc> bool operator<(const circular_buffer_space_optimized< T, Alloc > & lhs, const circular_buffer_space_optimized< T, Alloc > & rhs); // Test two space optimized circular buffers for non-equality. template<typename T, typename Alloc> bool operator!=(const circular_buffer_space_optimized< T, Alloc > & lhs, const circular_buffer_space_optimized< T, Alloc > & rhs); // Lexicographical comparison. template<typename T, typename Alloc> bool operator>(const circular_buffer_space_optimized< T, Alloc > & lhs, const circular_buffer_space_optimized< T, Alloc > & rhs); // Lexicographical comparison. template<typename T, typename Alloc> bool operator<=(const circular_buffer_space_optimized< T, Alloc > & lhs, const circular_buffer_space_optimized< T, Alloc > & rhs); // Lexicographical comparison. template<typename T, typename Alloc> bool operator>=(const circular_buffer_space_optimized< T, Alloc > & lhs, const circular_buffer_space_optimized< T, Alloc > & rhs); // Swap the contents of two space optimized circular buffers. template<typename T, typename Alloc> void swap(circular_buffer_space_optimized< T, Alloc > & lhs, circular_buffer_space_optimized< T, Alloc > & rhs); }