sekmadienis, sausio 06, 2008

grožis (subjektyvus :)

Seniai mačiau taip gudriai sudarytą API. (boost.python leidzia integruoti c++ kodą į python modulį ir atv.)


#include <boost/python.hpp>
#include <string>
#include <iostream>

class print {
public:
void print() { std::cout << m_text; }
void set(const std::string& text) { m_text = text; }
std::string get() const { return m_text; }
private:
std::string m_text;
};

using namespace boost::python;
BOOST_PYTHON_MODULE(demo)
{
class_<print>("print")
.add_attribute("text", &print::set, &print::get)
.def("print", &print::print)
;
}


import demo
p = demo.print()
p.text = "a";
p.print()