Согласно std::stack
ссылка:
Тип нижележащего контейнера для хранения элементов. Контейнер должен удовлетворять требованиям SequenceContainer. Кроме того, он должен предоставлять следующие функции с обычной семантикой:
back()
push_back()
pop_back()
Стандартные контейнеры std :: vector, std :: deque и std :: list удовлетворяют этим требованиям. По умолчанию, если для конкретного экземпляра класса стека не указан класс контейнера, используется стандартный контейнер std :: deque.
Все из них являются контейнерами на основе кучи.
следующие фактически компилируются ( clang ):
std::stack<int, std::array<int, 12> > stack_of_months;
До тех пор, пока не будет вызван push
.
Есть ли какой-нибудь трюк, чтобы легко обернуть std::array
для поддержки этих методовтак его можно использовать в стеке?