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