Commit 27f04a37 authored by Davis King's avatar Davis King

fixed tabbing

parent 80850327
...@@ -51,25 +51,25 @@ namespace dlib ...@@ -51,25 +51,25 @@ namespace dlib
template <typename T, size_t N> template <typename T, size_t N>
class sstack class sstack
{ {
public: public:
static_assert(N > 0, "You can't create an empty sstack."); static_assert(N > 0, "You can't create an empty sstack.");
typedef T value_type; typedef T value_type;
const static size_t num_elements = N; const static size_t num_elements = N;
sstack() {} sstack() {}
sstack(const T& item_) : item(item_), data(item_) {} sstack(const T& item_) : item(item_), data(item_) {}
const T& top() const { return item; } const T& top() const { return item; }
T& top() { return item; } T& top() { return item; }
size_t size() const { return N; } size_t size() const { return N; }
const sstack<T,N-1>& pop() const { return data; } const sstack<T,N-1>& pop() const { return data; }
sstack<T,N-1>& pop() { return data; } sstack<T,N-1>& pop() { return data; }
private: private:
T item; T item;
sstack<T,N-1> data; sstack<T,N-1> data;
}; };
template <typename T> template <typename T>
......
...@@ -52,72 +52,72 @@ namespace dlib ...@@ -52,72 +52,72 @@ namespace dlib
entirely allocated on the stack. entirely allocated on the stack.
!*/ !*/
public: public:
typedef T value_type; typedef T value_type;
const static size_t num_elements = N; const static size_t num_elements = N;
sstack( sstack(
); );
/*! /*!
ensures ensures
- #size() == N - #size() == N
- All elements of this stack are default constructed. - All elements of this stack are default constructed.
!*/ !*/
sstack( sstack(
const T& item const T& item
); );
/*! /*!
ensures ensures
- #size() == N - #size() == N
- Initializes all N elements in this stack with the given item. - Initializes all N elements in this stack with the given item. E.g.
E.g. top()==item, pop().top()==item, pop().pop().top()==item, etc. top()==item, pop().top()==item, pop().pop().top()==item, etc.
!*/ !*/
const T& top( const T& top(
) const; ) const;
/*! /*!
ensures ensures
- returns the top element of the stack. - returns the top element of the stack.
!*/ !*/
T& top( T& top(
); );
/*! /*!
ensures ensures
- returns the top element of the stack. - returns the top element of the stack.
!*/ !*/
size_t size( size_t size(
) const; ) const;
/*! /*!
ensures ensures
- returns the number of elements in this stack. In particular, the - returns the number of elements in this stack. In particular, the number
number returned is always N. returned is always N.
!*/ !*/
const sstack<T,N-1>& pop( const sstack<T,N-1>& pop(
) const; ) const;
/*! /*!
requires requires
- size() > 1 - size() > 1
ensures ensures
- returns a reference to the sub-stack S such that: - returns a reference to the sub-stack S such that:
- S.size() == size()-1. - S.size() == size()-1.
- S.top() is the next element in the stack. - S.top() is the next element in the stack.
!*/ !*/
sstack<T,N-1>& pop( sstack<T,N-1>& pop(
); );
/*! /*!
requires requires
- size() > 1 - size() > 1
ensures ensures
- returns a reference to the sub-stack S such that: - returns a reference to the sub-stack S such that:
- S.size() == size()-1. - S.size() == size()-1.
- S.top() is the next element in the stack. - S.top() is the next element in the stack.
!*/ !*/
}; };
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment