diff options
author | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:45:36 -0400 |
---|---|---|
committer | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:45:36 -0400 |
commit | dc2493e7525bb7633f697ef10f72b72b46222249 (patch) | |
tree | 9816755219e65d3f47fdce81c78f3736a7ddb8ab /deps/sol2/docs/source/api/object.rst | |
parent | 9d2b31797d0cfd130802b69261df2cd402e39b49 (diff) |
Forget what I said, I just need to change git attributes to mark for vendor
Diffstat (limited to 'deps/sol2/docs/source/api/object.rst')
-rw-r--r-- | deps/sol2/docs/source/api/object.rst | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/deps/sol2/docs/source/api/object.rst b/deps/sol2/docs/source/api/object.rst deleted file mode 100644 index 8f3765d..0000000 --- a/deps/sol2/docs/source/api/object.rst +++ /dev/null @@ -1,68 +0,0 @@ -object -====== -*general-purpose safety reference to an existing object* - - -.. code-block:: cpp - - class object : reference; - - -``object``'s goal is to allow someone to pass around the most generic form of a reference to something in Lua (or propogate a ``nil``). It is the logical extension of :doc:`sol::reference<reference>`, and is used in :ref:`sol::table's iterators<table-iterators>`. - - -members -------- - -.. code-block:: cpp - :caption: overloaded constructor: object - :name: overloaded-object-constructor - - template <typename T> - object(T&&); - object(lua_State* L, int index = -1); - template <typename T, typename... Args> - object(lua_State* L, in_place_t, T&& arg, Args&&... args); - template <typename T, typename... Args> - object(lua_State* L, in_place_type_t<T>, Args&&... args); - -There are 4 kinds of constructors here. One allows construction of an object from other reference types such as :doc:`sol::table<table>` and :doc:`sol::stack_reference<stack_reference>`. The second creates an object which references the specific element at the given index in the specified ``lua_State*``. The more advanced ``in_place...`` constructors create a single object by pushing the specified type ``T`` onto the stack and then setting it as the object. It gets popped from the stack afterwards (unless this is an instance of ``sol::stack_object``, in which case it is left on the stack). An example of using this and :doc:`sol::make_object<make_reference>` can be found in the `any_return example`_. - -.. code-block:: cpp - :caption: function: type conversion - - template<typename T> - decltype(auto) as() const; - -Performs a cast of the item this reference refers to into the type ``T`` and returns it. It obeys the same rules as :ref:`sol::stack::get\<T><stack-get>`. - -.. code-block:: cpp - :caption: function: type check - - template<typename T> - bool is() const; - -Performs a type check using the :ref:`sol::stack::check<stack-check>` api, after checking if the internally stored reference is valid. - - -non-members ------------ - -.. code-block:: cpp - :caption: functions: nil comparators - - bool operator==(const object& lhs, const nil_t&); - bool operator==(const nil_t&, const object& rhs); - bool operator!=(const object& lhs, const nil_t&); - bool operator!=(const nil_t&, const object& rhs); - -These allow a person to compare an ``sol::object`` against :ref:`nil<nil>`, which essentially checks if an object references a non-nil value, like so: - -.. code-block:: cpp - - if (myobj == sol::lua_nil) { - // doesn't have anything... - } - - -.. _any_return example: https://github.com/ThePhD/sol2/blob/develop/examples/source/any_return.cpp |