#include <iostream>
#include <limits>
struct my_type
{
typedef unsigned key_type;
key_type m_key;
char m_data[128 - sizeof(key_type)];
my_type() { }
my_type(key_type k) : m_key(k) { }
static my_type min_value()
{
}
static my_type max_value()
{
}
};
inline bool operator < (
const my_type& a,
const my_type& b)
{
return a.m_key < b.m_key;
}
inline bool operator == (
const my_type& a,
const my_type& b)
{
return a.m_key == b.m_key;
}
struct Cmp
{
typedef my_type first_argument_type;
typedef my_type second_argument_type;
typedef bool result_type;
bool operator () (const my_type& a, const my_type& b) const
{
return a < b;
}
static my_type min_value()
{
return my_type::min_value();
}
static my_type max_value()
{
return my_type::max_value();
}
};
std::ostream&
operator << (std::ostream& o,
const my_type& obj)
{
o << obj.m_key;
return o;
}
int main(int argc, char** argv)
{
if (argc < 3)
{
std::cout << "Usage: " << argv[0] << " infile outfile" << std::endl;
return -1;
}
vector_type input(&in_file);
vector_type output(&out_file);
output.resize(input.size());
typedef Cmp comparator_type;
sort_stream_type sort_stream(input_stream, comparator_type(), memory_to_use);
if (1) {
}
return 0;
}