// @topic S-0314-09-01-20 friend functions (C/C++)
// @brief class Container declaration

// container.h
#ifndef CONTAINER_H_INCLUDED_
#define CONTAINER_H_INCLUDED_

#include <iostream>

class Container;
void print_data( Container* container );
void print_data( Container& container );
std::ostream& operator<<( std::ostream& stream, Container& container );

//template< typename E >
class Container {
    friend void print_data( Container& container );
    friend void print_data( Container* container );
    friend std::ostream& operator<<( std::ostream& stream, Container& container );

private:
    static const int DEFAULT_CONTAINER_SIZE = 4;
    char data[ DEFAULT_CONTAINER_SIZE ];

public:
    Container( char a, char b, char c, char d );

};//class Container

#endif //CONTAINER_H_INCLUDED_