| // Copyright 2017 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef BASE_CONTAINERS_STACK_H_ | 
 | #define BASE_CONTAINERS_STACK_H_ | 
 |  | 
 | #include <stack> | 
 |  | 
 | #include "base/containers/circular_deque.h" | 
 |  | 
 | namespace base { | 
 |  | 
 | // Provides a definition of base::stack that's like std::stack but uses a | 
 | // base::circular_queue instead of std::deque. Since std::stack is just a | 
 | // wrapper for an underlying type, we can just provide a typedef for it that | 
 | // defaults to the base circular_deque. | 
 | template <class T, class Container = circular_deque<T>> | 
 | using stack = std::stack<T, Container>; | 
 |  | 
 | }  // namespace base | 
 |  | 
 | #endif  // BASE_CONTAINERS_STACK_H_ |