Program Listing for File output.hpp¶
↰ Return to documentation for file (src/output/output.hpp)
#pragma once
#include <iostream>
#include "config.h"
#ifndef __LILI_LPRINT_RATE
#define __LILI_LPRINT_RATE 10000
#endif
namespace lili::output {
class LiliCout {
public:
LiliCout() : enabled(true) {}
LiliCout(bool enabled) : enabled(enabled) {}
template <typename T>
LiliCout& operator<<(const T& t) {
if (enabled) std::cout << t;
return *this;
}
LiliCout& operator<<(std::ostream& (*f)(std::ostream&)) {
if (enabled) std::cout << f;
return *this;
}
bool enabled;
};
// Function declaration
void PrintVersion();
void PrintVersion(LiliCout& out);
void PrintHelp();
void PrintHelp(LiliCout& out);
void LiliExit(int status);
} // namespace lili::output