// @topic T060970 Stack of integers v4
// @brief main entry point
#include <cstdlib>
#include <iostream>
#include "Stack.h"
// This function uses stack passed by reference.
// No copying is taking place:
void use_stack(Stack const& st)
{
std::cout << __FUNCTION__;
std::cout << " Size of stack is " << st.size() << '\n';
}
// This function creates and returns a stack object.
// The object "moves" to the caller's scope, because
// class Stack provides the move constructor
Stack create_stack()
{
// construct stack with 5 elements:
Stack st = Stack{ 10, 20, 30, 40, 50 };
st.push(10);
st.push(20);
return st; // the object "moves" to caller's scope
}
void doit()
{
Stack st = create_stack();
use_stack( st );
std::cout << "Size of stack is " << st.size() << '\n';
}
int main()
{
doit();
system("pause");
}