@@ -440,6 +440,8 @@ namespace chaiscript
|
|||||||
m->add(constructor<dispatch::Dynamic_Object ()>(), "Dynamic_Object");
|
m->add(constructor<dispatch::Dynamic_Object ()>(), "Dynamic_Object");
|
||||||
m->add(fun(&dispatch::Dynamic_Object::get_type_name), "get_type_name");
|
m->add(fun(&dispatch::Dynamic_Object::get_type_name), "get_type_name");
|
||||||
m->add(fun(&dispatch::Dynamic_Object::get_attrs), "get_attrs");
|
m->add(fun(&dispatch::Dynamic_Object::get_attrs), "get_attrs");
|
||||||
|
m->add(fun(&dispatch::Dynamic_Object::set_explicit), "set_explicit");
|
||||||
|
m->add(fun(&dispatch::Dynamic_Object::is_explicit), "is_explicit");
|
||||||
|
|
||||||
m->add(fun(static_cast<Boxed_Value & (dispatch::Dynamic_Object::*)(const std::string &)>(&dispatch::Dynamic_Object::get_attr)), "get_attr");
|
m->add(fun(static_cast<Boxed_Value & (dispatch::Dynamic_Object::*)(const std::string &)>(&dispatch::Dynamic_Object::get_attr)), "get_attr");
|
||||||
m->add(fun(static_cast<const Boxed_Value & (dispatch::Dynamic_Object::*)(const std::string &) const>(&dispatch::Dynamic_Object::get_attr)), "get_attr");
|
m->add(fun(static_cast<const Boxed_Value & (dispatch::Dynamic_Object::*)(const std::string &) const>(&dispatch::Dynamic_Object::get_attr)), "get_attr");
|
||||||
|
@@ -28,14 +28,24 @@ namespace chaiscript
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Dynamic_Object(std::string t_type_name)
|
Dynamic_Object(std::string t_type_name)
|
||||||
: m_type_name(std::move(t_type_name))
|
: m_type_name(std::move(t_type_name)), m_option_explicit(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Dynamic_Object() : m_type_name("")
|
Dynamic_Object() : m_type_name(""), m_option_explicit(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_explicit() const
|
||||||
|
{
|
||||||
|
return m_option_explicit;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_explicit(const bool t_explicit)
|
||||||
|
{
|
||||||
|
m_option_explicit = t_explicit;
|
||||||
|
}
|
||||||
|
|
||||||
std::string get_type_name() const
|
std::string get_type_name() const
|
||||||
{
|
{
|
||||||
return m_type_name;
|
return m_type_name;
|
||||||
@@ -85,6 +95,7 @@ namespace chaiscript
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_type_name;
|
std::string m_type_name;
|
||||||
|
bool m_option_explicit;
|
||||||
|
|
||||||
std::map<std::string, Boxed_Value> m_attrs;
|
std::map<std::string, Boxed_Value> m_attrs;
|
||||||
};
|
};
|
||||||
|
@@ -10,5 +10,5 @@ var o = MyClass();
|
|||||||
|
|
||||||
assert_true(o.is_explicit());
|
assert_true(o.is_explicit());
|
||||||
|
|
||||||
assert_throws(fun[o](){o.x = 2})
|
assert_throws("error", fun[o](){o.x = 2})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user