#pragma once
#include <iostream>
#include <ostream>

// #define LOGGER (std::cout << __FILE__ << ":" << __LINE__)

struct logger {
    logger() = default;

    template<typename T>
    std::ostream& operator << (T&& msg) {
        return std::cout << msg;
    }

    ~logger() {
        std::cout << std::endl;
    }
};

#define logger() (logger() << __FILE__ << ":" << __LINE__ << " ")