| // 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 DEPENDENT_DWA200286_HPP |
| # define DEPENDENT_DWA200286_HPP |
| |
| namespace boost { namespace python { namespace detail { |
| |
| // A way to turn a concrete type T into a type dependent on U. This |
| // keeps conforming compilers (those implementing proper 2-phase |
| // name lookup for templates) from complaining about incomplete |
| // types in situations where it would otherwise be inconvenient or |
| // impossible to re-order code so that all types are defined in time. |
| |
| // One such use is when we must return an incomplete T from a member |
| // function template (which must be defined in the class body to |
| // keep MSVC happy). |
| template <class T, class U> |
| struct dependent |
| { |
| typedef T type; |
| }; |
| |
| }}} // namespace boost::python::detail |
| |
| #endif // DEPENDENT_DWA200286_HPP |