Code View

// 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;
  };
  }
}