#ifndef ELFSPY_CAPTURE_H #define ELFSPY_CAPTURE_H #include namespace spy { /* * @namespace spy * @class Capture * Base class for holding copies of 1 or nore values encountered during * invocations. Provides methods for comparison in asserts after invocation. */ template class Capture { public: using Container = std::vector; using const_iterator = typename Container::const_iterator; const_iterator begin() const; const_iterator end() const; std::size_t size() const; const T& value(std::size_t index = 0) const; protected: Container captures_; }; template inline typename Capture::const_iterator Capture::begin() const { return captures_.begin(); } template inline typename Capture::const_iterator Capture::end() const { return captures_.end(); } template //inline typename Capture::size_type Capture::size() const inline std::size_t Capture::size() const { return captures_.size(); } template const T& Capture::value(std::size_t index) const { return captures_[index]; } } // namespace spy #endif