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