<P>是一种在Python Boost中公开C++变体的方法,是:</P>
<ol>
<li>包在课堂上</li>
<li>代码集和GET方法</li>
<li>在Python Boost模块中公开类。在</li>
</ol>
<h2>包括</h2>
<pre><code>using namespace std;
boost::variant<int, string, bool> v;
typedef boost::variant<int, string, bool> myvar;
class VariantClass
{
public:
myvar x = "hello";
myvar y = 20;
myvar z = false;
void setString(string n){
x = n;
}
void setInt(int n){
y = n;
}
void setBool(bool n){
z = n;
}
string getString(){
string s = boost::get<string>(x);
return s;
}
int getInt(){
int i = boost::get<int>(y);
return i;
}
bool getBool(){
bool b = boost::get<bool>(z);
return b;
}
string greet() { return "Hello World Test!"; }
};
//using namespace boost::python;
BOOST_PYTHON_MODULE(bpv)
{
using namespace boost::python;
class_<VariantClass>("VariantClass", init<>())
.def("setString", &VariantClass::setString)
.def("setInt", &VariantClass::setInt)
.def("setBool", &VariantClass::setBool)
.def("getString", &VariantClass::getString)
.def("getInt", &VariantClass::getInt)
.def("getBool", &VariantClass::getBool)
.def("greet", &VariantClass::greet);
}
</code></pre>