Listing 1
// the TR1 header <array>
namespace std { // C++ Standard Library
namespace tr1 { // TR1 additions
template<class Ty, std::size_t N>
class array;
// TEMPLATE FUNCTIONS
template<class Ty, std::size_t N>
bool operator==(const array<Ty, N>& left,
const array<Ty, N>& right);
template<class Ty, std::size_t N>
bool operator!=(const array<Ty, N>& left,
const array<Ty, N>& right);
template<class Ty, std::size_t N>
bool operator<(const array<Ty, N>& left,
const array<Ty, N>& right);
template<class Ty, std::size_t N>
bool operator<=(const array<Ty, N>& left,
const array<Ty, N>& right);
template<class Ty, std::size_t N>
bool operator>(const array<Ty, N>& left,
const array<Ty, N>& right);
template<class Ty, std::size_t N>
bool operator>=(const array<Ty, N>& left,
const array<Ty, N>& right);
template<class Ty, std::size_t N>
void swap(array<Ty, N>& left, array<Ty, N>& right);
// tuple-LIKE INTERFACE
template<int Idx, class T, std::size_t N>
T& get(array<T, N>&);
template<int Idx, class T, std::size_t N>
const T& get(const array<T, N>&);
template<class T, std::size_t N>
class tuple_element<array<T, N> >;
template<class T, std::size_t N>
class tuple_size<array<T, N> >;
} }