sl@0: // Copyright David Abrahams 2002.
sl@0: // Distributed under the Boost Software License, Version 1.0. (See
sl@0: // accompanying file LICENSE_1_0.txt or copy at
sl@0: // http://www.boost.org/LICENSE_1_0.txt)
sl@0: #ifndef DEPENDENT_DWA200286_HPP
sl@0: # define DEPENDENT_DWA200286_HPP
sl@0: 
sl@0: namespace boost { namespace python { namespace detail { 
sl@0: 
sl@0: // A way to turn a concrete type T into a type dependent on U. This
sl@0: // keeps conforming compilers (those implementing proper 2-phase
sl@0: // name lookup for templates) from complaining about incomplete
sl@0: // types in situations where it would otherwise be inconvenient or
sl@0: // impossible to re-order code so that all types are defined in time.
sl@0: 
sl@0: // One such use is when we must return an incomplete T from a member
sl@0: // function template (which must be defined in the class body to
sl@0: // keep MSVC happy).
sl@0: template <class T, class U>
sl@0: struct dependent
sl@0: {
sl@0:     typedef T type;
sl@0: };
sl@0: 
sl@0: }}} // namespace boost::python::detail
sl@0: 
sl@0: #endif // DEPENDENT_DWA200286_HPP