mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 00:51:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 *  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 <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 {
 | 
						|
        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; }
 | 
						|
 | 
						|
        static void cleanup();
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
#endif // TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
 |