Opened 15 years ago

Last modified 13 years ago

#1180 new Feature Requests

[boost.python] def_readwrite need a default docstring — at Version 1

Reported by: qiaozhiqiang@… Owned by: Dave Abrahams
Milestone: To Be Determined Component: python USE GITHUB
Version: Boost 1.34.0 Severity: Problem
Keywords: def_readwrite docstring Cc: rwgk@…

Description (last modified by Dave Abrahams)

the default docstring defined by def_readwrite is null, can boost.python add the type name of my_s::a as the default docstring? like the function's "C++ signature" docstring.

struct my_s
{
        int a;
};

void export_module
{
      class_<my_s >  s_class("my_s", init<  >());
      s_class.def_readwrite("a", &my_s::a);// __doc__ is empty, can boost.python add the type name of my_s::a as the default docstring? like the function's "C++ signature" docstring.
}

// I do this like this:
// get type name of data member of class 
template<typename T, typename C>
char const* MemberTypeName(T C::*)
{
        char const* name = typeid(T).name();
        return name;
}

// boost::python def_readwrite no docstring
// read write property
#define DEF_READWRITE(n, p) \
        def_readwrite((n), (p), std::string("read write property, type is ") + MemberTypeName(p)).c_str())



void export_module
{
      class_<my_s >  s_class("my_s", init<  >());
      s_class.DEF_READWRITE("a", &my_s::a);// replace all auto genarated def_readwrite to DEF_READWRITE.
}

Change History (1)

comment:1 by Dave Abrahams, 14 years ago

Description: modified (diff)

Fix formatting mess.

Note: See TracTickets for help on using tickets.