diff options
author | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:19:31 -0400 |
---|---|---|
committer | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:19:31 -0400 |
commit | bd3fe0cac583739bc0d7c4b5c8f301bb350abca0 (patch) | |
tree | 7eeb1aabcebd6999de1c3457d0882246ec0ff4d4 /lib/sol2/docs/source/api/as_table.rst | |
parent | 2662ac356ce14dacfbc91689fd37244facff4989 (diff) |
Renamed lib to deps so github will ignore it for language stats
Diffstat (limited to 'lib/sol2/docs/source/api/as_table.rst')
-rw-r--r-- | lib/sol2/docs/source/api/as_table.rst | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/lib/sol2/docs/source/api/as_table.rst b/lib/sol2/docs/source/api/as_table.rst deleted file mode 100644 index 28c0636..0000000 --- a/lib/sol2/docs/source/api/as_table.rst +++ /dev/null @@ -1,33 +0,0 @@ -as_table -=========== -*make sure an object is pushed as a table* - - -.. code-block:: cpp - - template <typename T> - as_table_t { - T& value() &; - const T& value() & const; - T&& value() &&; - }; - - template <typename T> - as_table_t<T> as_function ( T&& container ); - -This function serves the purpose of ensuring that an object is pushed -- if possible -- like a table into Lua. The container passed here can be a pointer, a reference, a ``std::reference_wrapper`` around a container, or just a plain container value. It must have a begin/end function, and if it has a ``std::pair<Key, Value>`` as its ``value_type``, it will be pushed as a dictionary. Otherwise, it's pushed as a sequence. - -.. literalinclude:: ../../../examples/source/docs/as_table_ipairs.cpp - :linenos: - -Note that any caveats with Lua tables apply the moment it is serialized, and the data cannot be gotten out back out in C++ as a C++ type. You can deserialize the Lua table into something explicitly using the ``sol::as_table_t`` marker for your get and conversion operations using sol. At that point, the returned type is deserialized **from** a table, meaning you cannot reference any kind of C++ data directly as you do with regular userdata/usertypes. *All C++ type information is lost upon serialization into Lua.* - -If you need this functionality with a member variable, use a :doc:`property on a getter function<property>` that returns the result of ``sol::as_table``. - -This marker does NOT apply to :doc:`usertypes<usertype>`. - -You can also use this to nest types and retrieve tables within tables as shown by this example. - -.. literalinclude:: ../../../examples/source/containers_as_table.cpp - :linenos: - :lines: 1-8,31-60,62-68,70- |