// [[[ HEADER ]]]
using std::cout;  using std::cerr;  using std::endl;

#ifndef __CPP__INCLUDED__RPerl__Algorithm_h
#define __CPP__INCLUDED__RPerl__Algorithm_h 0.005_000

// [[[ INCLUDES & OO INHERITANCE INCLUDES ]]]
#include <RPerl.cpp>  // -> RPerl.h -> (rperltypes_mode.h; rperloperations.h; rperltypes.h; HelperFunctions.cpp)
#include <RPerl/CompileUnit/Module/Class.cpp> // no non-system inheritance, only inherit from base class

# ifdef __PERL__TYPES

// [[[<<< BEGIN PERL TYPES >>>]]]
// [[[<<< BEGIN PERL TYPES >>>]]]
// [[[<<< BEGIN PERL TYPES >>>]]]

// [[[ OO INHERITANCE ]]]
class RPerl__Algorithm : public RPerl__CompileUnit__Module__Class__CPP {
public:
// [[[ OO METHODS ]]]
    void inherited_Algorithm(SV* person);
//    void inherited(SV* person);

    // <<< CONSTRUCTOR & DESTRUCTOR >>>
    RPerl__Algorithm() {}
    ~RPerl__Algorithm() {}

    // <<< CLASS NAME REPORTER >>>
    virtual SV* myclassname() { return newSVpv("RPerl::Algorithm", 0); }
};

// [[[ SUBROUTINES ]]]

SV* uninherited_Algorithm(SV* person);
//SV* uninherited(SV* person);

// <<< OPERATIONS & DATA TYPES REPORTER >>>
SV* RPerl__Algorithm__MODE_ID() { return newSViv(1); }  // CPPOPS_PERLTYPES is 1

// [[[<<< END PERL TYPES >>>]]]
// [[[<<< END PERL TYPES >>>]]]
// [[[<<< END PERL TYPES >>>]]]

# elif defined __CPP__TYPES

// [[[<<< BEGIN CPP TYPES >>>]]]
// [[[<<< BEGIN CPP TYPES >>>]]]
// [[[<<< BEGIN CPP TYPES >>>]]]

// [[[ OO INHERITANCE ]]]
class RPerl__Algorithm : public RPerl__CompileUnit__Module__Class__CPP {
public:
// [[[ OO METHODS ]]]
    void inherited_Algorithm(string person);
//    void inherited(string person);

    // <<< CONSTRUCTOR & DESTRUCTOR >>>
    RPerl__Algorithm() {}
    ~RPerl__Algorithm() {}

    // <<< CLASS NAME REPORTER >>>
    virtual string myclassname() { return (const string) "RPerl::Algorithm"; }
};

// [[[ SUBROUTINES ]]]

string uninherited_Algorithm(string person);
//string uninherited(string person);

// <<< OPERATIONS & DATA TYPES REPORTER >>>
integer RPerl__Algorithm__MODE_ID() { return 2; }  // CPPOPS_CPPTYPES is 2

// [[[<<< END CPP TYPES >>>]]]
// [[[<<< END CPP TYPES >>>]]]
// [[[<<< END CPP TYPES >>>]]]

# else

Purposefully_die_from_a_compile-time_error,_due_to_neither___PERL__TYPES_nor___CPP__TYPES_being_defined.__We_need_to_define_exactly_one!

# endif

#endif