#include <iostream>
using namespace std;

struct clear_line { } cls;

class out {
private:
	std::ostream &strm = std::cout;
	bool is_next_clear = false;
public:
    template <typename T>
	out& operator<<(const T& obj) {
		if(is_next_clear) {
			strm << std::endl << std::endl << std::endl; // clear logic
			is_next_clear = false;
		}
		
		strm << obj;
		return *this;
	}
	
	out& operator<<(const clear_line& _) {
		is_next_clear = true;
		return *this;
	}
};

int main() {
	out o;
	o << "Some real output" << cls;
	o << "Some other real output";
	
	return 0;
}