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 ARGS_FWD_DWA2002927_HPP sl@0: # define ARGS_FWD_DWA2002927_HPP sl@0: sl@0: # include sl@0: sl@0: # include sl@0: # include sl@0: # include sl@0: # include sl@0: sl@0: namespace boost { namespace python { sl@0: sl@0: namespace detail sl@0: { sl@0: struct keyword sl@0: { sl@0: keyword(char const* name_=0) sl@0: : name(name_) sl@0: {} sl@0: sl@0: char const* name; sl@0: handle<> default_value; sl@0: }; sl@0: sl@0: template struct keywords; sl@0: sl@0: typedef std::pair keyword_range; sl@0: sl@0: template <> sl@0: struct keywords<0> sl@0: { sl@0: BOOST_STATIC_CONSTANT(std::size_t, size = 0); sl@0: static keyword_range range() { return keyword_range(); } sl@0: }; sl@0: sl@0: namespace error sl@0: { sl@0: template sl@0: struct more_keywords_than_function_arguments sl@0: { sl@0: typedef char too_many_keywords[keywords > function_args ? -1 : 1]; sl@0: }; sl@0: } sl@0: } sl@0: sl@0: }} // namespace boost::python sl@0: sl@0: #endif // ARGS_FWD_DWA2002927_HPP