123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- * Created by Phil on 2/12/2013.
- * Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
- *
- * Distributed under the Boost Software License, Version 1.0. (See accompanying
- * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- *
- */
- #ifndef TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
- #define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
- #include "catch_common.h"
- #include <iosfwd>
- #include <cstddef>
- #include <ostream>
- namespace Catch {
- std::ostream& cout();
- std::ostream& cerr();
- std::ostream& clog();
- class StringRef;
- struct IStream {
- virtual ~IStream();
- virtual std::ostream& stream() const = 0;
- };
- auto makeStream( StringRef const &filename ) -> IStream const*;
- class ReusableStringStream : NonCopyable {
- std::size_t m_index;
- std::ostream* m_oss;
- public:
- ReusableStringStream();
- ~ReusableStringStream();
- auto str() const -> std::string;
- template<typename T>
- auto operator << ( T const& value ) -> ReusableStringStream& {
- *m_oss << value;
- return *this;
- }
- auto get() -> std::ostream& { return *m_oss; }
- };
- }
- #endif // TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
|