// SPDX-License-Identifier: MIT
#pragma once
#include <locale>
#include <ostream>
#include <string>
namespace test
{
// The base of a $STREAMABLE INHERITED class.
class Printable
{
public:
virtual ~Printable( ) = default;
protected:
virtual void PrintOn( std::ostream &stream ) const = 0;
};
namespace features
{
// A user class the MEMBER OF functions belong to.
class Reporter
{
public:
std::string sayReport( std::string const &what, std::locale const &loc );
std::string sayReport( std::string const &what );
void ReportError( std::string const &what, std::locale const &loc ) const;
void ReportError( std::string const &what ) const;
void LogReport( std::string const &what, std::locale const &loc, int option_parameter ) const;
void LogReport( std::string const &what, int option_parameter ) const;
};
}
}