[C++-SIG] help with CXX-4.2 and add_keyword_method

Phil Austin phil at geog.ubc.ca
Mon Apr 24 22:35:05 CEST 2000


I'm trying to use add_keyword_method in the appended code
and am getting the following errors from KCC-3.4f under
Solaris 5.6.  Am I guessing wrong as to the correct 
synax? 

Thanks Phil

"/home/phil/include/CXX-4.2/CXX_Extensions.h", line 164: error: no instance of
          constructor
          "Py::MethodDefExt<T>::MethodDefExt [with T=testkey_module]" matches
          the argument list
            argument types are: (const char *,
                      Py::ExtensionModule<testkey_module>::method_keyword_funct
                      ion_t, PyObject *(PyObject *, PyObject *, PyObject *),
                      const char *)
  			name,
  			^
          detected during instantiation of "void
                    Py::ExtensionModule<T>::add_keyword_method(const char *,
                    Py::ExtensionModule<T>::method_keyword_function_t, const
                    char *) [with T=testkey_module]" at line 20 of "testkey.cc"


#include "Python.h"
#include "CXX_Objects.h"
#include "CXX_Extensions.h"

#include <algorithm>
USING(namespace Py)
USING(namespace std)

extern "C" void inittestkey();

class testkey_module : public ExtensionModule<testkey_module>
{
public:
	testkey_module()
		: ExtensionModule<testkey_module>( "testkey" )
	{
		add_varargs_method("sum", &testkey_module::ex_sum, "testing");
		add_keyword_method("sum2", &testkey_module::ex_sum2, "testing2");

		initialize( "documentation for the testkey module" );

		Dict d( moduleDictionary() );

		d["a_constant"] = Int(12);
	}

	virtual ~testkey_module() {}

private:

	Object ex_sum (const Tuple &a)
	{
	  cout << a[0] << endl;
	  return a[0];
	}

 	Object ex_sum2 (const Tuple &a, const Dict &b)
 	{
 	  cout <<  a[1] << endl;
 	  return a[1];
 	}
};

void inittestkey()
{
	static testkey_module *testkey = new testkey_module;
}




More information about the Cplusplus-sig mailing list