Browse Source

docs: Add section about registry names

Ole 9 years ago
parent
commit
a6f4216225

+ 25 - 0
docs/mkdocs/user-types.md

@@ -158,3 +158,28 @@ Point& my_point = luwra::construct<Point>(lua, 13.37, 73.31);
 // Changes on C++ side will be visible in Lua
 my_point.scale(2);
 ```
+
+## Registry names
+When registering the metatable for a user type, an automatically generated name will be used to
+store it in the registry. When Luwra is used in a single executable or shared library, name
+collisions should not happen. If your application consists of multiple seperate compiled units, it
+is highly recommended to prevent name collisions by defining the `LUWRA_REGISTRY_PREFIX` macro
+before including the Luwra headers. This macro changes the prefix for auto-generated registry names.
+
+```c++
+#define LUWRA_REGISTRY_PREFIX "MyProject#"
+#include <luwra.hpp>
+```
+
+Another way to prevent collisons is to give each user type its individual registry name. This can be
+done using the `LUWRA_DEF_REGISTRY_NAME` macro.
+
+```c++
+struct MyUserType {
+    // ...
+};
+
+LUWRA_DEF_REGISTRY_NAME(MyUserType, "MyUserType")
+```
+
+Choosing this method will not prefix the registry name with the value of `LUWRA_REGISTRY_PREFIX`.

+ 1 - 1
docs/output/index.html

@@ -193,5 +193,5 @@ your preference.</p>
 
 <!--
 MkDocs version : 0.15.3
-Build Date UTC : 2016-04-20 00:25:32.414350
+Build Date UTC : 2016-05-06 16:55:02.590192
 -->

File diff suppressed because it is too large
+ 0 - 0
docs/output/mkdocs/search_index.json


+ 45 - 33
docs/output/reference/hierarchy.html

@@ -43,40 +43,52 @@
 <tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1NativeFunction.html" target="_self">luwra::NativeFunction&lt; S &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1NativeFunction_3_01R_07A_8_8_8_08_4.html" target="_self">luwra::NativeFunction&lt; R(A...)&gt;</a></td><td class="desc"></td></tr>
 <tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1NativeFunction_3_01void_07A_8_8_8_08_4.html" target="_self">luwra::NativeFunction&lt; void(A...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>NumericValueBase</b></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; double, Number &gt;</b></td><td class="desc"></td></tr>
 <tr id="row_5_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01double_01_4.html" target="_self">luwra::Value&lt; double &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01float_01_4.html" target="_self">luwra::Value&lt; float &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01long_01double_01_4.html" target="_self">luwra::Value&lt; long double &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedchar_01_4.html" target="_self">luwra::Value&lt; signedchar &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedint_01_4.html" target="_self">luwra::Value&lt; signedint &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedlong_01int_01_4.html" target="_self">luwra::Value&lt; signedlong int &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedlong_01long_01int_01_4.html" target="_self">luwra::Value&lt; signedlong long int &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedshort_01_4.html" target="_self">luwra::Value&lt; signedshort &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01char_01_4.html" target="_self">luwra::Value&lt; unsigned char &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01int_01_4.html" target="_self">luwra::Value&lt; unsigned int &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01long_01int_01_4.html" target="_self">luwra::Value&lt; unsigned long int &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01long_01long_01int_01_4.html" target="_self">luwra::Value&lt; unsigned long long int &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_5_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01short_01_4.html" target="_self">luwra::Value&lt; unsigned short &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_6_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::PushableI</b></td><td class="desc"></td></tr>
-<tr id="row_6_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Pushable.html" target="_self">luwra::Pushable</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1StateWrapper.html" target="_self">luwra::StateWrapper</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_8_" class="arrow" onclick="toggleFolder('8_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value.html" target="_self">luwra::Value&lt; T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_8_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01const_01T_01_4.html" target="_self">luwra::Value&lt; const T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_8_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01volatile_01T_01_4.html" target="_self">luwra::Value&lt; volatile T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01Arbitrary_01_4.html" target="_self">luwra::Value&lt; Arbitrary &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01bool_01_4.html" target="_self">luwra::Value&lt; bool &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01CFunction_01_4.html" target="_self">luwra::Value&lt; CFunction &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_12_" class="arrow" onclick="toggleFolder('12_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01const_01char_01_5_01_4.html" target="_self">luwra::Value&lt; const char * &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01char[n]_4.html" target="_self">luwra::Value&lt; char[n]&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01const_01char[n]_4.html" target="_self">luwra::Value&lt; const char[n]&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01FieldVector_01_4.html" target="_self">luwra::Value&lt; FieldVector &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01NativeFunction_3_01R_07A_8_8_8_08_4_01_4.html" target="_self">luwra::Value&lt; NativeFunction&lt; R(A...)&gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01Pushable_01_4.html" target="_self">luwra::Value&lt; Pushable &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01std_1_1nullptr__t_01_4.html" target="_self">luwra::Value&lt; std::nullptr_t &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01std_1_1string_01_4.html" target="_self">luwra::Value&lt; std::string &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01std_1_1tuple_3_01A_8_8_8_01_4_01_4.html" target="_self">luwra::Value&lt; std::tuple&lt; A... &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01U_01_6_01_4.html" target="_self">luwra::Value&lt; U &amp; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01U_01_5_01_4.html" target="_self">luwra::Value&lt; U * &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_6_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; float, Number &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_6_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01float_01_4.html" target="_self">luwra::Value&lt; float &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_7_" class="arrow" onclick="toggleFolder('7_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; long double, Number &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_7_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01long_01double_01_4.html" target="_self">luwra::Value&lt; long double &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_8_" class="arrow" onclick="toggleFolder('8_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; signed char, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_8_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedchar_01_4.html" target="_self">luwra::Value&lt; signedchar &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_9_" class="arrow" onclick="toggleFolder('9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; signed int, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_9_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedint_01_4.html" target="_self">luwra::Value&lt; signedint &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_10_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_10_" class="arrow" onclick="toggleFolder('10_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; signed long int, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_10_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedlong_01int_01_4.html" target="_self">luwra::Value&lt; signedlong int &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_11_" class="arrow" onclick="toggleFolder('11_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; signed long long int, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_11_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedlong_01long_01int_01_4.html" target="_self">luwra::Value&lt; signedlong long int &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_12_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_12_" class="arrow" onclick="toggleFolder('12_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; signed short, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_12_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01signedshort_01_4.html" target="_self">luwra::Value&lt; signedshort &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; unsigned char, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_13_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01char_01_4.html" target="_self">luwra::Value&lt; unsigned char &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; unsigned int, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_14_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01int_01_4.html" target="_self">luwra::Value&lt; unsigned int &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_15_" class="arrow" onclick="toggleFolder('15_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; unsigned long int, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_15_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01long_01int_01_4.html" target="_self">luwra::Value&lt; unsigned long int &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_16_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_16_" class="arrow" onclick="toggleFolder('16_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; unsigned long long int, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_16_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01long_01long_01int_01_4.html" target="_self">luwra::Value&lt; unsigned long long int &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_17_" class="arrow" onclick="toggleFolder('17_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::NumericValueBase&lt; unsigned short, Integer &gt;</b></td><td class="desc"></td></tr>
+<tr id="row_17_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01unsigned_01short_01_4.html" target="_self">luwra::Value&lt; unsigned short &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_18_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_18_" class="arrow" onclick="toggleFolder('18_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>luwra::internal::PushableI</b></td><td class="desc"></td></tr>
+<tr id="row_18_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Pushable.html" target="_self">luwra::Pushable</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1StateWrapper.html" target="_self">luwra::StateWrapper</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value.html" target="_self">luwra::Value&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01const_01T_01_4.html" target="_self">luwra::Value&lt; const T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01volatile_01T_01_4.html" target="_self">luwra::Value&lt; volatile T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01Arbitrary_01_4.html" target="_self">luwra::Value&lt; Arbitrary &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01bool_01_4.html" target="_self">luwra::Value&lt; bool &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01CFunction_01_4.html" target="_self">luwra::Value&lt; CFunction &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_24_" class="arrow" onclick="toggleFolder('24_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01const_01char_01_5_01_4.html" target="_self">luwra::Value&lt; const char * &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_24_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01char[n]_4.html" target="_self">luwra::Value&lt; char[n]&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_24_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01const_01char[n]_4.html" target="_self">luwra::Value&lt; const char[n]&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01FieldVector_01_4.html" target="_self">luwra::Value&lt; FieldVector &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01NativeFunction_3_01R_07A_8_8_8_08_4_01_4.html" target="_self">luwra::Value&lt; NativeFunction&lt; R(A...)&gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01Pushable_01_4.html" target="_self">luwra::Value&lt; Pushable &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01std_1_1nullptr__t_01_4.html" target="_self">luwra::Value&lt; std::nullptr_t &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01std_1_1string_01_4.html" target="_self">luwra::Value&lt; std::string &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01std_1_1tuple_3_01A_8_8_8_01_4_01_4.html" target="_self">luwra::Value&lt; std::tuple&lt; A... &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01U_01_6_01_4.html" target="_self">luwra::Value&lt; U &amp; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structluwra_1_1Value_3_01U_01_5_01_4.html" target="_self">luwra::Value&lt; U * &gt;</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01double_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; double, Number &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; double, Number &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01float_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; float, Number &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; float, Number &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01long_01double_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; long double, Number &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; long double, Number &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01signedchar_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; signed char, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; signed char, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01signedint_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; signed int, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; signed int, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01signedlong_01int_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; signed long int, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; signed long int, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01signedlong_01long_01int_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; signed long long int, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; signed long long int, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01signedshort_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; signed short, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; signed short, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01unsigned_01char_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; unsigned char, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; unsigned char, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01unsigned_01int_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; unsigned int, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; unsigned int, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01unsigned_01long_01int_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; unsigned long int, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; unsigned long int, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01unsigned_01long_01long_01int_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; unsigned long long int, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; unsigned long long int, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 1 - 1
docs/output/reference/structluwra_1_1Value_3_01unsigned_01short_01_4.html

@@ -41,7 +41,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p>Inherits NumericValueBase&lt; unsigned short, Integer &gt;.</p>
+<p>Inherits luwra::internal::NumericValueBase&lt; unsigned short, Integer &gt;.</p>
 </div><!-- contents -->
 	</body>
 </html>

+ 5 - 5
docs/output/sitemap.xml

@@ -4,7 +4,7 @@
     
     <url>
      <loc>None/</loc>
-     <lastmod>2016-04-20</lastmod>
+     <lastmod>2016-05-06</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -12,7 +12,7 @@
     
     <url>
      <loc>None/basics/</loc>
-     <lastmod>2016-04-20</lastmod>
+     <lastmod>2016-05-06</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -20,7 +20,7 @@
     
     <url>
      <loc>None/advanced/</loc>
-     <lastmod>2016-04-20</lastmod>
+     <lastmod>2016-05-06</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -28,7 +28,7 @@
     
     <url>
      <loc>None/wrapping/</loc>
-     <lastmod>2016-04-20</lastmod>
+     <lastmod>2016-05-06</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>None/user-types/</loc>
-     <lastmod>2016-04-20</lastmod>
+     <lastmod>2016-05-06</lastmod>
      <changefreq>daily</changefreq>
     </url>
     

+ 23 - 0
docs/output/user-types/index.html

@@ -98,6 +98,8 @@
                 
                     <li><a class="toctree-l4" href="#manually-constructing-a-user-type">Manually constructing a user type</a></li>
                 
+                    <li><a class="toctree-l4" href="#registry-names">Registry names</a></li>
+                
             
             </ul>
         
@@ -281,6 +283,27 @@ top of the stack:</p>
 // Changes on C++ side will be visible in Lua
 my_point.scale(2);
 </code></pre>
+
+<h2 id="registry-names">Registry names</h2>
+<p>When registering the metatable for a user type, an automatically generated name will be used to
+store it in the registry. When Luwra is used in a single executable or shared library, name
+collisions should not happen. If your application consists of multiple seperate compiled units, it
+is highly recommended to prevent name collisions by defining the <code>LUWRA_REGISTRY_PREFIX</code> macro
+before including the Luwra headers. This macro changes the prefix for auto-generated registry names.</p>
+<pre><code class="c++">#define LUWRA_REGISTRY_PREFIX &quot;MyProject#&quot;
+#include &lt;luwra.hpp&gt;
+</code></pre>
+
+<p>Another way to prevent collisons is to give each user type its individual registry name. This can be
+done using the <code>LUWRA_DEF_REGISTRY_NAME</code> macro.</p>
+<pre><code class="c++">struct MyUserType {
+    // ...
+};
+
+LUWRA_DEF_REGISTRY_NAME(MyUserType, &quot;MyUserType&quot;)
+</code></pre>
+
+<p>Choosing this method will not prefix the registry name with the value of <code>LUWRA_REGISTRY_PREFIX</code>.</p>
               
             </div>
           </div>

Some files were not shown because too many files changed in this diff