Blame boost/blank.hpp

Packit 58578d
//-----------------------------------------------------------------------------
Packit 58578d
// boost blank.hpp header file
Packit 58578d
// See http://www.boost.org for updates, documentation, and revision history.
Packit 58578d
//-----------------------------------------------------------------------------
Packit 58578d
//
Packit 58578d
// Copyright (c) 2003
Packit 58578d
// Eric Friedman
Packit 58578d
//
Packit 58578d
// Distributed under the Boost Software License, Version 1.0. (See
Packit 58578d
// accompanying file LICENSE_1_0.txt or copy at
Packit 58578d
// http://www.boost.org/LICENSE_1_0.txt)
Packit 58578d
Packit 58578d
#ifndef BOOST_BLANK_HPP
Packit 58578d
#define BOOST_BLANK_HPP
Packit 58578d
Packit 58578d
#include "boost/blank_fwd.hpp"
Packit 58578d
Packit 58578d
#if !defined(BOOST_NO_IOSTREAM)
Packit 58578d
#include <iosfwd> // for std::basic_ostream forward declare
Packit 58578d
#include "boost/detail/templated_streams.hpp"
Packit 58578d
#endif // BOOST_NO_IOSTREAM
Packit 58578d
Packit 58578d
#include "boost/mpl/bool.hpp"
Packit 58578d
#include "boost/type_traits/is_empty.hpp"
Packit 58578d
#include "boost/type_traits/is_pod.hpp"
Packit 58578d
#include "boost/type_traits/is_stateless.hpp"
Packit 58578d
Packit 58578d
namespace boost {
Packit 58578d
Packit 58578d
struct blank
Packit 58578d
{
Packit 58578d
};
Packit 58578d
Packit 58578d
// type traits specializations
Packit 58578d
//
Packit 58578d
Packit 58578d
template <>
Packit 58578d
struct is_pod< blank >
Packit 58578d
    : mpl::true_
Packit 58578d
{
Packit 58578d
};
Packit 58578d
Packit 58578d
template <>
Packit 58578d
struct is_empty< blank >
Packit 58578d
    : mpl::true_
Packit 58578d
{
Packit 58578d
};
Packit 58578d
Packit 58578d
template <>
Packit 58578d
struct is_stateless< blank >
Packit 58578d
    : mpl::true_
Packit 58578d
{
Packit 58578d
};
Packit 58578d
Packit 58578d
// relational operators
Packit 58578d
//
Packit 58578d
Packit 58578d
inline bool operator==(const blank&, const blank&)
Packit 58578d
{
Packit 58578d
    return true;
Packit 58578d
}
Packit 58578d
Packit 58578d
inline bool operator<=(const blank&, const blank&)
Packit 58578d
{
Packit 58578d
    return true;
Packit 58578d
}
Packit 58578d
Packit 58578d
inline bool operator>=(const blank&, const blank&)
Packit 58578d
{
Packit 58578d
    return true;
Packit 58578d
}
Packit 58578d
Packit 58578d
inline bool operator!=(const blank&, const blank&)
Packit 58578d
{
Packit 58578d
    return false;
Packit 58578d
}
Packit 58578d
Packit 58578d
inline bool operator<(const blank&, const blank&)
Packit 58578d
{
Packit 58578d
    return false;
Packit 58578d
}
Packit 58578d
Packit 58578d
inline bool operator>(const blank&, const blank&)
Packit 58578d
{
Packit 58578d
    return false;
Packit 58578d
}
Packit 58578d
Packit 58578d
// streaming support
Packit 58578d
//
Packit 58578d
#if !defined(BOOST_NO_IOSTREAM)
Packit 58578d
Packit 58578d
BOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
Packit 58578d
inline BOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
Packit 58578d
      BOOST_TEMPLATED_STREAM(ostream, E,T)& out
Packit 58578d
    , const blank&
Packit 58578d
    )
Packit 58578d
{
Packit 58578d
    // (output nothing)
Packit 58578d
    return out;
Packit 58578d
}
Packit 58578d
Packit 58578d
#endif // BOOST_NO_IOSTREAM
Packit 58578d
Packit 58578d
} // namespace boost
Packit 58578d
Packit 58578d
#endif // BOOST_BLANK_HPP