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