#include <vector>

template <typename T>
class stack {
public:
  stack() {}
  auto pop() -> void;
  auto push(const T& i) -> void;
private:
  std::vector<T> items_;
};

template <typename T>
auto stack<T>::pop() -> void {
  items_.pop_back();
}

template <typename T>
auto stack<T>::push(const T& i) -> void {
  items_.push_back(i);
}

auto main() -> int {
  stack<int> s;
  s.push(5);
}