Hello, the Py++ documentation has several recommendations how to solve registration order problems with member functions. Like for example this solution (from the documentation): >s2 = mb.class_( "S2" ) >s2.member_function( "do_smth" ).use_overload_macro = True
But what to do if the class constructors have a registration order problem? I tried >test = mb.class_( "Test" ) >for c in test.constructors(): > c.use_overload_macro = True but this doesn't solve the problem described below. The (condensed) code I want to pythonify is: -------------------- #include <string> #include <iostream> class Test:public std::string{ public: Test(std::string); Test(char*); Test(char); void printme(); }; Test::Test(std::string s):std::string(s){ } Test::Test(char *s):std::string(s){ } Test::Test(char c):std::string(1,c){ } void Test::printme(){ std::cout<<*this<<std::endl; } -------------------- However, a test of the generated python module shows: >In [1]: import testmodule >In [2]: t=testmodule.Test("Hello") >In [3]: t.printme() >H #(expected "Hello" here) This indicated that the Test(char) constructor is applied although a string was given. How can I solve the problem? If possible only with module builder functions, without changes to the C code? Thanks Werner _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig