diff --git a/include/chaiscript/dispatchkit/bootstrap.hpp b/include/chaiscript/dispatchkit/bootstrap.hpp index 8ce0c44..f3e2fb1 100644 --- a/include/chaiscript/dispatchkit/bootstrap.hpp +++ b/include/chaiscript/dispatchkit/bootstrap.hpp @@ -530,6 +530,9 @@ namespace chaiscript m->add(fun(&Boxed_Value::is_undef), "is_undef"); m->add(fun(&Boxed_Value::is_null), "is_null"); + m->add(fun(&Boxed_Value::is_const), "is_const"); + m->add(fun(&Boxed_Value::is_ref), "is_reference"); + m->add(fun(&Boxed_Value::is_pointer), "is_pointer"); basic_constructors("bool", m); operators::assign(m); diff --git a/include/chaiscript/dispatchkit/boxed_value.hpp b/include/chaiscript/dispatchkit/boxed_value.hpp index 9e7ab7f..80277eb 100644 --- a/include/chaiscript/dispatchkit/boxed_value.hpp +++ b/include/chaiscript/dispatchkit/boxed_value.hpp @@ -335,6 +335,12 @@ namespace chaiscript return m_data->m_is_ref; } + bool is_pointer() const + { + return !is_ref(); + } + + private: boost::shared_ptr m_data; }; diff --git a/unittests/classification.chai b/unittests/classification.chai new file mode 100644 index 0000000..932620d --- /dev/null +++ b/unittests/classification.chai @@ -0,0 +1,7 @@ +print(1.is_const()); +print(1.is_reference()); +print(1.is_pointer()); +print(1.is_null()); +print(1.is_undef()); +var i; +print(i.is_undef()); diff --git a/unittests/classification.txt b/unittests/classification.txt new file mode 100644 index 0000000..a9b840a --- /dev/null +++ b/unittests/classification.txt @@ -0,0 +1,6 @@ +true +false +true +false +false +true