C++的一个好库。。。现在很流行
源代码在线查看: function.hpp
软件大小: |
21075 K |
上传用户: |
lyyfengyutongzh |
|
|
关键词: |
|
下载地址: |
免注册下载 普通下载
|
|
// Copyright David Abrahams 2001.
// 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 FUNCTION_DWA20011214_HPP
# define FUNCTION_DWA20011214_HPP
# include
# include
# include
# include
# include
# include
namespace boost { namespace python { namespace objects {
struct BOOST_PYTHON_DECL function : PyObject
{
function(
py_function const&
, python::detail::keyword const* names_and_defaults
, unsigned num_keywords);
~function();
PyObject* call(PyObject*, PyObject*) const;
// Add an attribute to the name_space with the given name. If it is
// a function object (this class), and an existing function is
// already there, add it as an overload.
static void add_to_namespace(
object const& name_space, char const* name, object const& attribute);
static void add_to_namespace(
object const& name_space, char const* name, object const& attribute, char const* doc);
object const& doc() const;
void doc(object const& x);
object const& name() const;
private: // helper functions
void argument_error(PyObject* args, PyObject* keywords) const;
void add_overload(handle const&);
private: // data members
py_function m_fn;
handle m_overloads;
object m_name;
object m_namespace;
object m_doc;
object m_arg_names;
unsigned m_nkeyword_values;
};
//
// implementations
//
inline object const& function::doc() const
{
return this->m_doc;
}
inline void function::doc(object const& x)
{
this->m_doc = x;
}
inline object const& function::name() const
{
return this->m_name;
}
}}} // namespace boost::python::objects
#endif // FUNCTION_DWA20011214_HPP