[C++-sig] Boost tuple example? (original) (raw)

Matt mjkeyes at sbcglobal.net
Fri Dec 9 05:58:27 CET 2005


Basically, I'm wanting to be able to build a Python list object in C++ and pass it into Python.

Similarly, I'd like to be able to receive one of these list objects back from Python and be able to extract values from it in C++.

I'm sure this is a simple operation, and (since these are simple types) it looks like I can do the following (thanks Ralf for the pointer to the test directory):

void SetValues(handle <> hObject) { object oObj(hObject);

 tuple Values("value 1", 2, 3.0);
 //call a python function to set the values, etc... in oObj

}

void GetValues(handle <>hObject) { object oObj(hObject); tuple oValues; //call Python function to retrieve a tuple object into oValues //not quite sure what this would look like - i know //tuple is an object, but should i try/catch a call to a python //function into a tuple variable?

try
{
      const char * szVal = extract<const char *>(oValues[0]);
      int nVal = extract<int>(oValues[1]);
      double nDblVal = extract<double>(oValues[2]);
}
catch(...)
{
      PyErr_Print();
}

}

Does that seem reasonable?

Also, is there an easy way to determine the length of a tuple in C++?

Thanks again you guys, Matt

"David Abrahams" <dave at boost-consulting.com> wrote in message news:uu0dj5qms.fsf at boost-consulting.com...

"Ralf W. Grosse-Kunstleve" <rwgk at yahoo.com> writes:

--- Matt <mjkeyes at sbcglobal.net> wrote:

Does anyone have an example of boost's use of tuples? For example, I am wanting to construct tuples in C++ and pass them on to Python (these will consist of basic types (const char*'s, integers, etc.) or object values. Look in the file: boost/libs/python/test/tuple.cpp You can probably learn a lot of tricks by spending 30 minutes to scan through all the *.cpp files in the boost/libs/python/test directory. I read the OP as asking about how to translate boost::tuple, a completely C++ generalization of std::pair (rather than boost::python::tuple, a wrapper for native Python tuples) to/from Python's tuples. Which is it? -- Dave Abrahams Boost Consulting www.boost-consulting.com



More information about the Cplusplus-sig mailing list