// Copyright David Abrahams 2002.

// 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 VOID_RETURN_DWA200274_HPP

# define VOID_RETURN_DWA200274_HPP



# include <boost/config.hpp>



namespace boost { namespace python { namespace detail { 



struct void_return

{

    void_return() {}

 private: 

    void operator=(void_return const&);

};



template <class T>

struct returnable

{

    typedef T type;

};



# ifdef BOOST_NO_VOID_RETURNS

template <>

struct returnable<void>

{

    typedef void_return type;

};



#  ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS

template <> struct returnable<const void> : returnable<void> {};

template <> struct returnable<volatile void> : returnable<void> {};

template <> struct returnable<const volatile void> : returnable<void> {};

#  endif



# endif // BOOST_NO_VOID_RETURNS



}}} // namespace boost::python::detail



#endif // VOID_RETURN_DWA200274_HPP

