| 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
 |