Інтерфейс шаблонного класу
Для того щоб реалізація C ++ підтримувала будь-які типи даних, виконують шаблон:
У цьому прикладі буфер C ++ імітує більшу частину логіки реалізації C, але в результаті виходить набагато більш чистий і багаторазово використовується дизайн. Крім того, контейнер C ++ використовує “std::mutex” для забезпечення поточно-орієнтованої реалізації. При створенні класу виділяють дані для основного буфера і встановлюють його розмір. Це усуває накладні витрати, необхідні з реалізацією C. На відміну від неї, конструктор C ++ не викликає “reset”, оскільки вказують початкові значення змінних-членів, кругової контейнер запускається в правильному стані. Поведінка скидання повертає буфер порожній стан. У реалізації циклічного контейнера C ++ «size» та «capacity» повідомляє кількість елементів у черзі, а не розмір в байтах.