dub 0.6.6 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/History.txt +26 -0
  2. data/README.rdoc +41 -1
  3. data/dub.gemspec +160 -166
  4. data/lib/dub/argument.rb +25 -13
  5. data/lib/dub/function.rb +14 -4
  6. data/lib/dub/group.rb +2 -6
  7. data/lib/dub/klass.rb +55 -19
  8. data/lib/dub/lua/class.cpp.erb +29 -2
  9. data/lib/dub/lua/class_gen.rb +33 -34
  10. data/lib/dub/lua/function.cpp.erb +9 -12
  11. data/lib/dub/lua/function_gen.rb +55 -19
  12. data/lib/dub/lua/lua_cpp_helper.cpp +252 -0
  13. data/lib/dub/lua/lua_cpp_helper.h +118 -40
  14. data/lib/dub/lua/namespace.cpp.erb +3 -1
  15. data/lib/dub/lua/namespace_gen.rb +14 -33
  16. data/lib/dub/member_extraction.rb +47 -11
  17. data/lib/dub/namespace.rb +14 -3
  18. data/lib/dub/opts_parser.rb +3 -3
  19. data/lib/dub/version.rb +2 -2
  20. data/test/argument_test.rb +46 -12
  21. data/test/fixtures/app/include/matrix.h +121 -0
  22. data/test/fixtures/app/vendor/lua/liblua.a +0 -0
  23. data/test/fixtures/app/xml/classdub_1_1_base.xml +85 -0
  24. data/test/fixtures/app/xml/classdub_1_1_custom_destructor.xml +67 -0
  25. data/test/fixtures/app/xml/classdub_1_1_deletable_out_of_lua.xml +43 -0
  26. data/test/fixtures/app/xml/classdub_1_1_matrix.xml +162 -21
  27. data/test/fixtures/app/xml/classdub_1_1_no_destructor.xml +49 -0
  28. data/test/fixtures/app/xml/classdub_1_1_priv_sub_base.xml +89 -0
  29. data/test/fixtures/app/xml/classdub_1_1_private_constr.xml +68 -0
  30. data/test/fixtures/app/xml/classdub_1_1_static_constr.xml +69 -0
  31. data/test/fixtures/app/xml/classdub_1_1_sub_base.xml +89 -0
  32. data/test/fixtures/app/xml/classdub_1_1_t_mat.xml +15 -15
  33. data/test/fixtures/app/xml/index.xml +43 -0
  34. data/test/fixtures/app/xml/matrix_8h.xml +263 -132
  35. data/test/fixtures/app/xml/namespacedub.xml +10 -3
  36. data/test/function_group_test.rb +20 -1
  37. data/test/function_test.rb +10 -0
  38. data/test/group_test.rb +95 -9
  39. data/test/klass_test.rb +134 -5
  40. data/test/lua_function_gen_test.rb +36 -9
  41. metadata +20 -23
  42. data/.gitignore +0 -8
@@ -1,6 +1,18 @@
1
1
  <?xml version='1.0' encoding='UTF-8' standalone='no'?>
2
2
  <doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.6.3">
3
+ <compound refid="classdub_1_1_base" kind="class"><name>dub::Base</name>
4
+ <member refid="classdub_1_1_base_1ac906f7b7c2dadda8277be3f7dff4d0fe" kind="function"><name>Base</name></member>
5
+ <member refid="classdub_1_1_base_1ad7382fcee9fc5a93dbdd94375e4bf512" kind="function"><name>~Base</name></member>
6
+ <member refid="classdub_1_1_base_1a000aeea60faa72eb694f636125cadbc2" kind="function"><name>method_in_base</name></member>
7
+ </compound>
8
+ <compound refid="classdub_1_1_custom_destructor" kind="class"><name>dub::CustomDestructor</name>
9
+ <member refid="classdub_1_1_custom_destructor_1a3d7ad33377ffbaabc015e9edf817cbef" kind="function"><name>CustomDestructor</name></member>
10
+ <member refid="classdub_1_1_custom_destructor_1acf4d9fd787b873c8eef16b824bd4cff1" kind="function"><name>~CustomDestructor</name></member>
11
+ <member refid="classdub_1_1_custom_destructor_1aa47a1ea428fb9cde34d726d06f32ffc0" kind="function"><name>do_this</name></member>
12
+ </compound>
3
13
  <compound refid="classdub_1_1_matrix" kind="class"><name>dub::Matrix</name>
14
+ <member refid="classdub_1_1_matrix_1aa2925235ace4c72c9cf8e5509c8fea9f" kind="property"><name>foo_prop</name></member>
15
+ <member refid="classdub_1_1_matrix_1a8dda311ed155077c59d2dd9a1bb8d4d4" kind="property"><name>size</name></member>
4
16
  <member refid="classdub_1_1_matrix_1a134af4a94d273c34cc99e7645fb97917" kind="variable"><name>data_</name></member>
5
17
  <member refid="classdub_1_1_matrix_1afbb3dac9aac8db0e6feffb8c61954065" kind="variable"><name>rows_</name></member>
6
18
  <member refid="classdub_1_1_matrix_1a9820706da6cb36cf14dfefbb4eabc92d" kind="variable"><name>cols_</name></member>
@@ -14,13 +26,43 @@
14
26
  <member refid="classdub_1_1_matrix_1a27fea405cf08ac087a11eefbaf4a342f" kind="function"><name>operator size_t</name></member>
15
27
  <member refid="classdub_1_1_matrix_1ac159906fa5480fdc9539a7be1e1825ed" kind="function"><name>mul</name></member>
16
28
  <member refid="classdub_1_1_matrix_1a5bf5b5aee77c4e4a4cf906ce785fe37b" kind="function"><name>do_something</name></member>
29
+ <member refid="classdub_1_1_matrix_1addb1193bb535468279ac84be43a1c3c2" kind="function"><name>do_something</name></member>
30
+ <member refid="classdub_1_1_matrix_1a1a23761eddbbe7d2c12b58570a089abb" kind="function"><name>bad_method</name></member>
17
31
  <member refid="classdub_1_1_matrix_1a5d8ae4699d499cb9e4292c2ff765d3a1" kind="function"><name>use_other_lib</name></member>
18
32
  <member refid="classdub_1_1_matrix_1a90798c27b8b4017a939f804481eb50ad" kind="function"><name>ptr</name></member>
33
+ <member refid="classdub_1_1_matrix_1a9b806d48af6d822da6045cc699209b39" kind="function"><name>true</name></member>
34
+ <member refid="classdub_1_1_matrix_1a3bccec6b300f49c7cd4b394dc93a3354" kind="function"><name>name</name></member>
19
35
  <member refid="classdub_1_1_matrix_1af64ee96907ba127c876b9ebb9a65cc72" kind="function"><name>lua_thing</name></member>
36
+ <member refid="classdub_1_1_matrix_1aec9687539871e56fc39348fc7f2ef2ef" kind="function"><name>work_with_lua</name></member>
20
37
  <member refid="classdub_1_1_matrix_1ad21255c4a1457c9969b6092ee40e0870" kind="function"><name>MakeMatrix</name></member>
38
+ <member refid="classdub_1_1_matrix_1a36d6f79e7453eac381e2bdb858e26552" kind="function"><name>Matrix</name></member>
21
39
  <member refid="classdub_1_1_matrix_1a068b8c574a47b79df894bf1f4b3e1946" kind="function"><name>private_method</name></member>
22
40
  <member refid="classdub_1_1_matrix_1aea9c51add856fe990e6474410849f8e3" kind="function"><name>protected_method</name></member>
23
41
  </compound>
42
+ <compound refid="classdub_1_1_no_destructor" kind="class"><name>dub::NoDestructor</name>
43
+ <member refid="classdub_1_1_no_destructor_1a34f8ca50e4b2b7aec9d0f03418234853" kind="function"><name>NoDestructor</name></member>
44
+ <member refid="classdub_1_1_no_destructor_1a452392aa6c5e8197fc488819bef9f82c" kind="function"><name>~NoDestructor</name></member>
45
+ </compound>
46
+ <compound refid="classdub_1_1_private_constr" kind="class"><name>dub::PrivateConstr</name>
47
+ <member refid="classdub_1_1_private_constr_1a3babb1efc05711cabd5d134808122de0" kind="function"><name>PrivateConstr</name></member>
48
+ <member refid="classdub_1_1_private_constr_1a174cf284ec0da84991abb013d7b498a7" kind="function"><name>~PrivateConstr</name></member>
49
+ <member refid="classdub_1_1_private_constr_1ad75c5206e443c41ec74a9d273db8a733" kind="function"><name>PrivateConstr</name></member>
50
+ </compound>
51
+ <compound refid="classdub_1_1_priv_sub_base" kind="class"><name>dub::PrivSubBase</name>
52
+ <member refid="classdub_1_1_priv_sub_base_1ad3b248b5942202e9e4f24bd70bba9842" kind="function"><name>SubBase</name></member>
53
+ <member refid="classdub_1_1_priv_sub_base_1a434f3cce3e7a507457c245b946359160" kind="function"><name>~SubBase</name></member>
54
+ <member refid="classdub_1_1_priv_sub_base_1a2596f5226a8ac79d2ef19ab3273fdaf9" kind="function"><name>method_in_sub</name></member>
55
+ </compound>
56
+ <compound refid="classdub_1_1_static_constr" kind="class"><name>dub::StaticConstr</name>
57
+ <member refid="classdub_1_1_static_constr_1abf9020105a36eb99e7346a45625a7e2c" kind="function"><name>StaticConstr</name></member>
58
+ <member refid="classdub_1_1_static_constr_1aaf9d50d7ddca927965d3832f355bd6ac" kind="function"><name>~StaticConstr</name></member>
59
+ <member refid="classdub_1_1_static_constr_1a56ca6344b17c8ff3df132c6100b53882" kind="function"><name>MakeStaticConstr</name></member>
60
+ </compound>
61
+ <compound refid="classdub_1_1_sub_base" kind="class"><name>dub::SubBase</name>
62
+ <member refid="classdub_1_1_sub_base_1a9138b809b491779bce4b6ea83fafef77" kind="function"><name>SubBase</name></member>
63
+ <member refid="classdub_1_1_sub_base_1a8428276b3ec36d87805fdb7b74746459" kind="function"><name>~SubBase</name></member>
64
+ <member refid="classdub_1_1_sub_base_1ac4f5b28ef51171560a92ba242766a072" kind="function"><name>method_in_sub</name></member>
65
+ </compound>
24
66
  <compound refid="classdub_1_1_t_mat" kind="class"><name>dub::TMat</name>
25
67
  <member refid="classdub_1_1_t_mat_1a325c9dcebf13b0804997d014e7287606" kind="variable"><name>data_</name></member>
26
68
  <member refid="classdub_1_1_t_mat_1af4189290104841dd5a9a6f02bf83a7d8" kind="variable"><name>rows_</name></member>
@@ -42,6 +84,7 @@
42
84
  <member refid="namespacedub_1a1f14f9a863b395dbbc9cdbf168855673" kind="typedef"><name>FMatrix</name></member>
43
85
  </compound>
44
86
  <compound refid="matrix_8h" kind="file"><name>matrix.h</name>
87
+ <member refid="matrix_8h_1a038a308a5e7246ac41ca22c43d7209d1" kind="typedef"><name>LuaStackSize</name></member>
45
88
  </compound>
46
89
  <compound refid="dir_53661a2bdeb1d55e60581a7e15deb763" kind="dir"><name>include/</name>
47
90
  </compound>
@@ -21,8 +21,30 @@
21
21
  </node>
22
22
  </incdepgraph>
23
23
  <innerclass refid="classdub_1_1_matrix" prot="public">dub::Matrix</innerclass>
24
+ <innerclass refid="classdub_1_1_private_constr" prot="public">dub::PrivateConstr</innerclass>
25
+ <innerclass refid="classdub_1_1_custom_destructor" prot="public">dub::CustomDestructor</innerclass>
26
+ <innerclass refid="classdub_1_1_no_destructor" prot="public">dub::NoDestructor</innerclass>
27
+ <innerclass refid="classdub_1_1_static_constr" prot="public">dub::StaticConstr</innerclass>
28
+ <innerclass refid="classdub_1_1_base" prot="public">dub::Base</innerclass>
29
+ <innerclass refid="classdub_1_1_sub_base" prot="public">dub::SubBase</innerclass>
30
+ <innerclass refid="classdub_1_1_priv_sub_base" prot="public">dub::PrivSubBase</innerclass>
24
31
  <innerclass refid="classdub_1_1_t_mat" prot="public">dub::TMat</innerclass>
25
32
  <innernamespace refid="namespacedub">dub</innernamespace>
33
+ <sectiondef kind="typedef">
34
+ <memberdef kind="typedef" id="matrix_8h_1a038a308a5e7246ac41ca22c43d7209d1" prot="public" static="no">
35
+ <type>int</type>
36
+ <definition>typedef int LuaStackSize</definition>
37
+ <argsstring></argsstring>
38
+ <name>LuaStackSize</name>
39
+ <briefdescription>
40
+ </briefdescription>
41
+ <detaileddescription>
42
+ </detaileddescription>
43
+ <inbodydescription>
44
+ </inbodydescription>
45
+ <location file="/Users/gaspard/git/dub/test/fixtures/app/include/matrix.h" line="9" bodyfile="/Users/gaspard/git/dub/test/fixtures/app/include/matrix.h" bodystart="9" bodyend="-1"/>
46
+ </memberdef>
47
+ </sectiondef>
26
48
  <briefdescription>
27
49
  </briefdescription>
28
50
  <detaileddescription>
@@ -35,144 +57,253 @@
35
57
  <codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdlib.h&gt;</highlight><highlight class="normal"><sp/></highlight><highlight class="comment">//<sp/>malloc</highlight><highlight class="normal"></highlight></codeline>
36
58
  <codeline lineno="6"><highlight class="normal"></highlight></codeline>
37
59
  <codeline lineno="7"><highlight class="normal"></highlight></codeline>
38
- <codeline lineno="10"><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">dub<sp/>{</highlight></codeline>
39
- <codeline lineno="11"><highlight class="normal"></highlight></codeline>
40
- <codeline lineno="17" refid="classdub_1_1_matrix" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref><sp/>{</highlight></codeline>
41
- <codeline lineno="18"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
42
- <codeline lineno="19"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>()<sp/>:<sp/>data_(NULL),<sp/>rows_(0),<sp/>cols_(0)<sp/>{}</highlight></codeline>
60
+ <codeline lineno="9"><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>LuaStackSize;</highlight></codeline>
61
+ <codeline lineno="10"><highlight class="normal"></highlight></codeline>
62
+ <codeline lineno="11"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">dub<sp/>{</highlight></codeline>
63
+ <codeline lineno="12"><highlight class="normal"></highlight></codeline>
64
+ <codeline lineno="19" refid="classdub_1_1_matrix" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref><sp/>{</highlight></codeline>
43
65
  <codeline lineno="20"><highlight class="normal"></highlight></codeline>
44
- <codeline lineno="21"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rows,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cols)<sp/>:<sp/>rows_(rows),<sp/>cols_(cols)<sp/>{</highlight></codeline>
45
- <codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/>data_<sp/>=<sp/>(</highlight><highlight class="keywordtype">double</highlight><highlight class="normal">*)malloc(<ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>()<sp/>*<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(double));</highlight></codeline>
46
- <codeline lineno="23"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
47
- <codeline lineno="24"><highlight class="normal"></highlight></codeline>
48
- <codeline lineno="25"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>()<sp/>{</highlight></codeline>
49
- <codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(data_)<sp/>free(data_);</highlight></codeline>
50
- <codeline lineno="27"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
51
- <codeline lineno="28"><highlight class="normal"></highlight></codeline>
52
- <codeline lineno="30" refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>()<sp/>{</highlight></codeline>
53
- <codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_<sp/>*<sp/>cols_;</highlight></codeline>
66
+ <codeline lineno="21"><highlight class="normal"><sp/><sp/>Q_PROPERTY(</highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>foo_prop<sp/>READ<sp/><ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>)</highlight></codeline>
67
+ <codeline lineno="22"><highlight class="normal"><sp/><sp/>Q_PROPERTY(</highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>size<sp/>READ<sp/>size<sp/>WRITE<sp/>setSize)</highlight></codeline>
68
+ <codeline lineno="23"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
69
+ <codeline lineno="24"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>()<sp/>:<sp/>data_(NULL),<sp/>rows_(0),<sp/>cols_(0)<sp/>{}</highlight></codeline>
70
+ <codeline lineno="25"><highlight class="normal"></highlight></codeline>
71
+ <codeline lineno="26"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rows,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cols)<sp/>:<sp/>rows_(rows),<sp/>cols_(cols)<sp/>{</highlight></codeline>
72
+ <codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/>data_<sp/>=<sp/>(</highlight><highlight class="keywordtype">double</highlight><highlight class="normal">*)malloc(<ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>()<sp/>*<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(double));</highlight></codeline>
73
+ <codeline lineno="28"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
74
+ <codeline lineno="29"><highlight class="normal"></highlight></codeline>
75
+ <codeline lineno="30"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>()<sp/>{</highlight></codeline>
76
+ <codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(data_)<sp/>free(data_);</highlight></codeline>
54
77
  <codeline lineno="32"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
55
78
  <codeline lineno="33"><highlight class="normal"></highlight></codeline>
56
- <codeline lineno="34"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>cols()<sp/>{</highlight></codeline>
57
- <codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
58
- <codeline lineno="36"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
59
- <codeline lineno="37"><highlight class="normal"></highlight></codeline>
60
- <codeline lineno="38"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>rows()<sp/>{</highlight></codeline>
61
- <codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
62
- <codeline lineno="40"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
63
- <codeline lineno="41"><highlight class="normal"></highlight></codeline>
64
- <codeline lineno="44"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
65
- <codeline lineno="45" refid="classdub_1_1_matrix_1a7a47bc085de140093ba358d345d58df7" refkind="member"><highlight class="normal"><sp/><sp/>T<sp/>*<ref refid="classdub_1_1_matrix_1a7a47bc085de140093ba358d345d58df7" kindref="member">give_me_tea</ref>()<sp/>{</highlight></codeline>
66
- <codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>T();</highlight></codeline>
67
- <codeline lineno="47"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
68
- <codeline lineno="48"><highlight class="normal"></highlight></codeline>
69
- <codeline lineno="49"><highlight class="normal"><sp/><sp/>operator<sp/>size_t()<sp/>{</highlight></codeline>
70
- <codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>();</highlight></codeline>
71
- <codeline lineno="51"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
72
- <codeline lineno="52"><highlight class="normal"></highlight></codeline>
73
- <codeline lineno="53"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>mul(TMat&lt;int&gt;<sp/>other)<sp/>{</highlight></codeline>
74
- <codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
75
- <codeline lineno="55"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
76
- <codeline lineno="56"><highlight class="normal"></highlight></codeline>
77
- <codeline lineno="57"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>do_something(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>fast=</highlight><highlight class="keyword">false</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
78
- <codeline lineno="58"><highlight class="normal"></highlight></codeline>
79
- <codeline lineno="59"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
80
- <codeline lineno="60"><highlight class="normal"></highlight></codeline>
81
- <codeline lineno="61"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>use_other_lib(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string<sp/>&amp;name)<sp/>{</highlight></codeline>
82
- <codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
83
- <codeline lineno="63"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
84
- <codeline lineno="64"><highlight class="normal"></highlight></codeline>
85
- <codeline lineno="65"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*ptr()<sp/>{</highlight></codeline>
86
- <codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
87
- <codeline lineno="67"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
88
- <codeline lineno="68"><highlight class="normal"></highlight></codeline>
89
- <codeline lineno="69"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*lua_thing(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>a,<sp/>lua_State<sp/>*L,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>b)<sp/>{</highlight></codeline>
90
- <codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
91
- <codeline lineno="71"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
92
- <codeline lineno="72"><highlight class="normal"></highlight></codeline>
93
- <codeline lineno="75" refid="classdub_1_1_matrix_1ad21255c4a1457c9969b6092ee40e0870" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref><sp/>*<ref refid="classdub_1_1_matrix_1ad21255c4a1457c9969b6092ee40e0870" kindref="member">MakeMatrix</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rows,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cols)<sp/>{</highlight></codeline>
94
- <codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>(rows,<sp/>cols);</highlight></codeline>
95
- <codeline lineno="77"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
96
- <codeline lineno="78"><highlight class="normal"></highlight></codeline>
97
- <codeline lineno="79"><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
98
- <codeline lineno="80"><highlight class="normal"></highlight></codeline>
99
- <codeline lineno="81"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>private_method()<sp/>{</highlight></codeline>
100
- <codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>should<sp/>not<sp/>be<sp/>implemented</highlight><highlight class="normal"></highlight></codeline>
101
- <codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
102
- <codeline lineno="84"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
103
- <codeline lineno="85"><highlight class="normal"></highlight></codeline>
104
- <codeline lineno="86"><highlight class="normal"></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline>
105
- <codeline lineno="87"><highlight class="normal"></highlight></codeline>
106
- <codeline lineno="88"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>protected_method()<sp/>{</highlight></codeline>
107
- <codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>should<sp/>not<sp/>be<sp/>implemented</highlight><highlight class="normal"></highlight></codeline>
108
- <codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
109
- <codeline lineno="91"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
110
- <codeline lineno="92"><highlight class="normal"></highlight></codeline>
111
- <codeline lineno="93"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*data_;</highlight></codeline>
112
- <codeline lineno="94"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
113
- <codeline lineno="95"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
114
- <codeline lineno="96"><highlight class="normal">};</highlight></codeline>
115
- <codeline lineno="97"><highlight class="normal"></highlight></codeline>
116
- <codeline lineno="98"><highlight class="normal"></highlight></codeline>
117
- <codeline lineno="99"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
118
- <codeline lineno="100" refid="classdub_1_1_t_mat" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref><sp/>{</highlight></codeline>
119
- <codeline lineno="101"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
120
- <codeline lineno="102"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>()<sp/>:<sp/>data_(NULL),<sp/>rows_(0),<sp/>cols_(0)<sp/>{}</highlight></codeline>
121
- <codeline lineno="103"><highlight class="normal"></highlight></codeline>
122
- <codeline lineno="104"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rows,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cols)<sp/>:<sp/>rows_(rows),<sp/>cols_(cols)<sp/>{</highlight></codeline>
123
- <codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/>data_<sp/>=<sp/>(T*)malloc(<ref refid="classdub_1_1_t_mat_1affa049645f25277333d2d000051c762f" kindref="member">size</ref>()<sp/>*<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(T));</highlight></codeline>
124
- <codeline lineno="106"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
125
- <codeline lineno="107"><highlight class="normal"></highlight></codeline>
126
- <codeline lineno="108"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>test<sp/>constructor<sp/>with<sp/>T<sp/>parameter</highlight><highlight class="normal"></highlight></codeline>
127
- <codeline lineno="109"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>(T<sp/>dummy)<sp/>{</highlight></codeline>
79
+ <codeline lineno="35" refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>()<sp/>{</highlight></codeline>
80
+ <codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_<sp/>*<sp/>cols_;</highlight></codeline>
81
+ <codeline lineno="37"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
82
+ <codeline lineno="38"><highlight class="normal"></highlight></codeline>
83
+ <codeline lineno="39"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>cols()<sp/>{</highlight></codeline>
84
+ <codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
85
+ <codeline lineno="41"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
86
+ <codeline lineno="42"><highlight class="normal"></highlight></codeline>
87
+ <codeline lineno="43"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>rows()<sp/>{</highlight></codeline>
88
+ <codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
89
+ <codeline lineno="45"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
90
+ <codeline lineno="46"><highlight class="normal"></highlight></codeline>
91
+ <codeline lineno="49"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
92
+ <codeline lineno="50" refid="classdub_1_1_matrix_1a7a47bc085de140093ba358d345d58df7" refkind="member"><highlight class="normal"><sp/><sp/>T<sp/>*<ref refid="classdub_1_1_matrix_1a7a47bc085de140093ba358d345d58df7" kindref="member">give_me_tea</ref>()<sp/>{</highlight></codeline>
93
+ <codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>T();</highlight></codeline>
94
+ <codeline lineno="52"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
95
+ <codeline lineno="53"><highlight class="normal"></highlight></codeline>
96
+ <codeline lineno="54"><highlight class="normal"><sp/><sp/>operator<sp/>size_t()<sp/>{</highlight></codeline>
97
+ <codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix_1a91cd7ece7296a2f2b37f2b629dc66fed" kindref="member">size</ref>();</highlight></codeline>
98
+ <codeline lineno="56"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
99
+ <codeline lineno="57"><highlight class="normal"></highlight></codeline>
100
+ <codeline lineno="58"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>mul(TMat&lt;int&gt;<sp/>other)<sp/>{</highlight></codeline>
101
+ <codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
102
+ <codeline lineno="60"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
103
+ <codeline lineno="61"><highlight class="normal"></highlight></codeline>
104
+ <codeline lineno="62"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>do_something(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>fast=</highlight><highlight class="keyword">false</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
105
+ <codeline lineno="63"><highlight class="normal"></highlight></codeline>
106
+ <codeline lineno="64"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
107
+ <codeline lineno="65"><highlight class="normal"></highlight></codeline>
108
+ <codeline lineno="66"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>do_something(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*baz)<sp/>{</highlight></codeline>
109
+ <codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>overloaded<sp/>member<sp/>method</highlight><highlight class="normal"></highlight></codeline>
110
+ <codeline lineno="68"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
111
+ <codeline lineno="69"><highlight class="normal"></highlight></codeline>
112
+ <codeline lineno="70"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>bad_method(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i)<sp/>{</highlight></codeline>
113
+ <codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>method<sp/>should<sp/>not<sp/>exist<sp/>in<sp/>bindings</highlight><highlight class="normal"></highlight></codeline>
114
+ <codeline lineno="72"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
115
+ <codeline lineno="73"><highlight class="normal"></highlight></codeline>
116
+ <codeline lineno="74"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>use_other_lib(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string<sp/>&amp;name)<sp/>{</highlight></codeline>
117
+ <codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
118
+ <codeline lineno="76"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
119
+ <codeline lineno="77"><highlight class="normal"></highlight></codeline>
120
+ <codeline lineno="78"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*ptr()<sp/>{</highlight></codeline>
121
+ <codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
122
+ <codeline lineno="80"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
123
+ <codeline lineno="81"><highlight class="normal"></highlight></codeline>
124
+ <codeline lineno="82"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">()<sp/>{</highlight></codeline>
125
+ <codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
126
+ <codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
127
+ <codeline lineno="85"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
128
+ <codeline lineno="86"><highlight class="normal"></highlight></codeline>
129
+ <codeline lineno="87"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name()<sp/>{</highlight></codeline>
130
+ <codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>should<sp/>make<sp/>method<sp/>return<sp/>string</highlight><highlight class="normal"></highlight></codeline>
131
+ <codeline lineno="89"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
132
+ <codeline lineno="90"><highlight class="normal"></highlight></codeline>
133
+ <codeline lineno="91"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*lua_thing(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>a,<sp/>lua_State<sp/>*L,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>b)<sp/>{</highlight></codeline>
134
+ <codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
135
+ <codeline lineno="93"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
136
+ <codeline lineno="94"><highlight class="normal"></highlight></codeline>
137
+ <codeline lineno="95"><highlight class="normal"><sp/><sp/>LuaStackSize<sp/>work_with_lua(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>a,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>b)<sp/>{</highlight></codeline>
138
+ <codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>method<sp/>that<sp/>directly<sp/>pushes<sp/>lua<sp/>values<sp/>on<sp/>the<sp/>stack</highlight><highlight class="normal"></highlight></codeline>
139
+ <codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>2;</highlight></codeline>
140
+ <codeline lineno="98"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
141
+ <codeline lineno="99"><highlight class="normal"></highlight></codeline>
142
+ <codeline lineno="102" refid="classdub_1_1_matrix_1ad21255c4a1457c9969b6092ee40e0870" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref><sp/>*<ref refid="classdub_1_1_matrix_1ad21255c4a1457c9969b6092ee40e0870" kindref="member">MakeMatrix</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rows,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cols)<sp/>{</highlight></codeline>
143
+ <codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>(rows,<sp/>cols);</highlight></codeline>
144
+ <codeline lineno="104"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
145
+ <codeline lineno="105"><highlight class="normal"></highlight></codeline>
146
+ <codeline lineno="106"><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
147
+ <codeline lineno="107"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_matrix" kindref="compound">Matrix</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x)<sp/>{</highlight></codeline>
148
+ <codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>private<sp/>constructor</highlight><highlight class="normal"></highlight></codeline>
149
+ <codeline lineno="109"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
128
150
  <codeline lineno="110"><highlight class="normal"></highlight></codeline>
129
- <codeline lineno="111"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
130
- <codeline lineno="112"><highlight class="normal"></highlight></codeline>
131
- <codeline lineno="113"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>()<sp/>{</highlight></codeline>
132
- <codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(data_)<sp/>free(data_);</highlight></codeline>
133
- <codeline lineno="115"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
134
- <codeline lineno="116"><highlight class="normal"></highlight></codeline>
135
- <codeline lineno="119"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T2&gt;</highlight></codeline>
136
- <codeline lineno="120" refid="classdub_1_1_t_mat_1a2be2ba15b604f9529a9fce4eff4379e9" refkind="member"><highlight class="normal"><sp/><sp/>T2<sp/>*<ref refid="classdub_1_1_t_mat_1a2be2ba15b604f9529a9fce4eff4379e9" kindref="member">give_me_tea</ref>()<sp/>{</highlight></codeline>
137
- <codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>T2();</highlight></codeline>
138
- <codeline lineno="122"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
139
- <codeline lineno="123"><highlight class="normal"></highlight></codeline>
140
- <codeline lineno="125" refid="classdub_1_1_t_mat_1affa049645f25277333d2d000051c762f" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_t_mat_1affa049645f25277333d2d000051c762f" kindref="member">size</ref>()<sp/>{</highlight></codeline>
141
- <codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_<sp/>*<sp/>cols_;</highlight></codeline>
142
- <codeline lineno="127"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
151
+ <codeline lineno="111"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>private_method()<sp/>{</highlight></codeline>
152
+ <codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>should<sp/>not<sp/>be<sp/>implemented</highlight><highlight class="normal"></highlight></codeline>
153
+ <codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
154
+ <codeline lineno="114"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
155
+ <codeline lineno="115"><highlight class="normal"></highlight></codeline>
156
+ <codeline lineno="116"><highlight class="normal"></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline>
157
+ <codeline lineno="117"><highlight class="normal"></highlight></codeline>
158
+ <codeline lineno="118"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>protected_method()<sp/>{</highlight></codeline>
159
+ <codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>should<sp/>not<sp/>be<sp/>implemented</highlight><highlight class="normal"></highlight></codeline>
160
+ <codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
161
+ <codeline lineno="121"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
162
+ <codeline lineno="122"><highlight class="normal"></highlight></codeline>
163
+ <codeline lineno="123"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>*data_;</highlight></codeline>
164
+ <codeline lineno="124"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
165
+ <codeline lineno="125"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
166
+ <codeline lineno="126"><highlight class="normal">};</highlight></codeline>
167
+ <codeline lineno="127"><highlight class="normal"></highlight></codeline>
143
168
  <codeline lineno="128"><highlight class="normal"></highlight></codeline>
144
- <codeline lineno="129"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>cols()<sp/>{</highlight></codeline>
145
- <codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
146
- <codeline lineno="131"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
147
- <codeline lineno="132"><highlight class="normal"></highlight></codeline>
148
- <codeline lineno="133"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>rows()<sp/>{</highlight></codeline>
149
- <codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
150
- <codeline lineno="135"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
151
- <codeline lineno="136"><highlight class="normal"></highlight></codeline>
152
- <codeline lineno="137"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>fill(T<sp/>value)<sp/>{</highlight></codeline>
153
- <codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
154
- <codeline lineno="139"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
155
- <codeline lineno="140"><highlight class="normal"></highlight></codeline>
156
- <codeline lineno="141"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>FunkyThing(</highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>v[7])<sp/>{</highlight></codeline>
169
+ <codeline lineno="131" refid="classdub_1_1_private_constr" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_private_constr" kindref="compound">PrivateConstr</ref><sp/>{</highlight></codeline>
170
+ <codeline lineno="132"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
171
+ <codeline lineno="133"><highlight class="normal"></highlight></codeline>
172
+ <codeline lineno="134"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_private_constr" kindref="compound">PrivateConstr</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x)<sp/>{}</highlight></codeline>
173
+ <codeline lineno="135"><highlight class="normal"></highlight></codeline>
174
+ <codeline lineno="136"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_private_constr" kindref="compound">PrivateConstr</ref>()<sp/>{}</highlight></codeline>
175
+ <codeline lineno="137"><highlight class="normal"></highlight></codeline>
176
+ <codeline lineno="138"><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
177
+ <codeline lineno="139"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>should<sp/>not<sp/>be<sp/>used<sp/>to<sp/>build<sp/>a<sp/>FunctionGroup</highlight><highlight class="normal"></highlight></codeline>
178
+ <codeline lineno="140"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_private_constr" kindref="compound">PrivateConstr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{}</highlight></codeline>
179
+ <codeline lineno="141"><highlight class="normal">};</highlight></codeline>
157
180
  <codeline lineno="142"><highlight class="normal"></highlight></codeline>
158
- <codeline lineno="143"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
159
- <codeline lineno="144"><highlight class="normal"></highlight></codeline>
160
- <codeline lineno="145"><highlight class="normal"><sp/><sp/>T<sp/></highlight><highlight class="keyword">get</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>row,<sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>col)<sp/>{</highlight></codeline>
161
- <codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>data_[row<sp/>*<sp/>cols_<sp/>+<sp/>col];</highlight></codeline>
162
- <codeline lineno="147"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
163
- <codeline lineno="148"><highlight class="normal"></highlight></codeline>
164
- <codeline lineno="149"><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
165
- <codeline lineno="150"><highlight class="normal"><sp/><sp/>T<sp/>*data_;</highlight></codeline>
166
- <codeline lineno="151"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
167
- <codeline lineno="152"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
168
- <codeline lineno="153"><highlight class="normal">};</highlight></codeline>
169
- <codeline lineno="154"><highlight class="normal"></highlight></codeline>
170
- <codeline lineno="157"><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/>TMat&lt;float&gt;<sp/>FloatMat;</highlight></codeline>
171
- <codeline lineno="158"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/>FloatMat<sp/>FMatrix;</highlight></codeline>
172
- <codeline lineno="159"><highlight class="normal"></highlight></codeline>
173
- <codeline lineno="160"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>dub</highlight><highlight class="normal"></highlight></codeline>
174
- <codeline lineno="161"><highlight class="normal"></highlight></codeline>
175
- <codeline lineno="162"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/>//<sp/>DOXY_GENERATOR_TEST_FIXTURES_APP_MATRIX_H_</highlight></codeline>
181
+ <codeline lineno="146" refid="classdub_1_1_custom_destructor" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_custom_destructor" kindref="compound">CustomDestructor</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/>DeletableOutOfLua</highlight></codeline>
182
+ <codeline lineno="147"><highlight class="normal">{</highlight></codeline>
183
+ <codeline lineno="148"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
184
+ <codeline lineno="149"><highlight class="normal"></highlight></codeline>
185
+ <codeline lineno="150"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_custom_destructor" kindref="compound">CustomDestructor</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x)<sp/>{}</highlight></codeline>
186
+ <codeline lineno="151"><highlight class="normal"></highlight></codeline>
187
+ <codeline lineno="152"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_custom_destructor" kindref="compound">CustomDestructor</ref>()<sp/>{}</highlight></codeline>
188
+ <codeline lineno="153"><highlight class="normal"></highlight></codeline>
189
+ <codeline lineno="154"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>do_this(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x)<sp/>{</highlight></codeline>
190
+ <codeline lineno="155"><highlight class="normal"></highlight></codeline>
191
+ <codeline lineno="156"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
192
+ <codeline lineno="157"><highlight class="normal">};</highlight></codeline>
193
+ <codeline lineno="158"><highlight class="normal"></highlight></codeline>
194
+ <codeline lineno="163" refid="classdub_1_1_no_destructor" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_no_destructor" kindref="compound">NoDestructor</ref><sp/>{</highlight></codeline>
195
+ <codeline lineno="164"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
196
+ <codeline lineno="165"><highlight class="normal"></highlight></codeline>
197
+ <codeline lineno="166"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_no_destructor" kindref="compound">NoDestructor</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x)<sp/>{}</highlight></codeline>
198
+ <codeline lineno="167"><highlight class="normal"></highlight></codeline>
199
+ <codeline lineno="168"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_no_destructor" kindref="compound">NoDestructor</ref>()<sp/>{}</highlight></codeline>
200
+ <codeline lineno="169"><highlight class="normal">};</highlight></codeline>
201
+ <codeline lineno="170"><highlight class="normal"></highlight></codeline>
202
+ <codeline lineno="174" refid="classdub_1_1_static_constr" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_static_constr" kindref="compound">StaticConstr</ref><sp/>{</highlight></codeline>
203
+ <codeline lineno="175"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
204
+ <codeline lineno="176"><highlight class="normal"></highlight></codeline>
205
+ <codeline lineno="177"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_static_constr" kindref="compound">StaticConstr</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x)<sp/>{}</highlight></codeline>
206
+ <codeline lineno="178"><highlight class="normal"></highlight></codeline>
207
+ <codeline lineno="179"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_static_constr" kindref="compound">StaticConstr</ref>()<sp/>{}</highlight></codeline>
208
+ <codeline lineno="180"><highlight class="normal"></highlight></codeline>
209
+ <codeline lineno="181"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>We<sp/>usually<sp/>want<sp/>to<sp/>push<sp/>the<sp/>userdata<sp/>ourself<sp/>in</highlight><highlight class="normal"></highlight></codeline>
210
+ <codeline lineno="182"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>such<sp/>cases.</highlight><highlight class="normal"></highlight></codeline>
211
+ <codeline lineno="183"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>LuaStackSize<sp/>MakeStaticConstr(lua_State<sp/>*L)<sp/>{</highlight></codeline>
212
+ <codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;<sp/></highlight><highlight class="comment">//<sp/>fake<sp/>error<sp/>(nil<sp/>return)</highlight><highlight class="normal"></highlight></codeline>
213
+ <codeline lineno="185"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
214
+ <codeline lineno="186"><highlight class="normal">};</highlight></codeline>
215
+ <codeline lineno="187"><highlight class="normal"></highlight></codeline>
216
+ <codeline lineno="188"><highlight class="normal"></highlight><highlight class="comment">//<sp/>class<sp/>inheritence<sp/>tests</highlight><highlight class="normal"></highlight></codeline>
217
+ <codeline lineno="189" refid="classdub_1_1_base" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_base" kindref="compound">Base</ref><sp/>{</highlight></codeline>
218
+ <codeline lineno="190"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
219
+ <codeline lineno="191"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_base" kindref="compound">Base</ref>()<sp/>{}</highlight></codeline>
220
+ <codeline lineno="192"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_base" kindref="compound">Base</ref>()<sp/>{}</highlight></codeline>
221
+ <codeline lineno="193"><highlight class="normal"></highlight></codeline>
222
+ <codeline lineno="194"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*method_in_base(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x,<sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>y)<sp/>{</highlight></codeline>
223
+ <codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&quot;nothing&quot;</highlight><highlight class="normal">;</highlight></codeline>
224
+ <codeline lineno="196"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
225
+ <codeline lineno="197"><highlight class="normal">};</highlight></codeline>
226
+ <codeline lineno="198"><highlight class="normal"></highlight></codeline>
227
+ <codeline lineno="199"><highlight class="normal"></highlight><highlight class="comment">//<sp/>class<sp/>inheritence<sp/>tests</highlight><highlight class="normal"></highlight></codeline>
228
+ <codeline lineno="200" refid="classdub_1_1_sub_base" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_sub_base" kindref="compound">SubBase</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_base" kindref="compound">Base</ref><sp/>{</highlight></codeline>
229
+ <codeline lineno="201"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
230
+ <codeline lineno="202"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_sub_base" kindref="compound">SubBase</ref>()<sp/>{}</highlight></codeline>
231
+ <codeline lineno="203"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_sub_base" kindref="compound">SubBase</ref>()<sp/>{}</highlight></codeline>
232
+ <codeline lineno="204"><highlight class="normal"></highlight></codeline>
233
+ <codeline lineno="205"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>method_in_sub(</highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>y)<sp/>{</highlight></codeline>
234
+ <codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&quot;nothing&quot;</highlight><highlight class="normal">;</highlight></codeline>
235
+ <codeline lineno="207"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
236
+ <codeline lineno="208"><highlight class="normal">};</highlight></codeline>
237
+ <codeline lineno="209"><highlight class="normal"></highlight></codeline>
238
+ <codeline lineno="210"><highlight class="normal"></highlight><highlight class="comment">//<sp/>class<sp/>inheritence<sp/>tests</highlight><highlight class="normal"></highlight></codeline>
239
+ <codeline lineno="211" refid="classdub_1_1_priv_sub_base" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_priv_sub_base" kindref="compound">PrivSubBase</ref><sp/>:<sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_base" kindref="compound">Base</ref><sp/>{</highlight></codeline>
240
+ <codeline lineno="212"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
241
+ <codeline lineno="213"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_sub_base" kindref="compound">SubBase</ref>()<sp/>{}</highlight></codeline>
242
+ <codeline lineno="214"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_sub_base" kindref="compound">SubBase</ref>()<sp/>{}</highlight></codeline>
243
+ <codeline lineno="215"><highlight class="normal"></highlight></codeline>
244
+ <codeline lineno="216"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>method_in_sub(</highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>y)<sp/>{</highlight></codeline>
245
+ <codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&quot;nothing&quot;</highlight><highlight class="normal">;</highlight></codeline>
246
+ <codeline lineno="218"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
247
+ <codeline lineno="219"><highlight class="normal">};</highlight></codeline>
248
+ <codeline lineno="220"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
249
+ <codeline lineno="221" refid="classdub_1_1_t_mat" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref><sp/>{</highlight></codeline>
250
+ <codeline lineno="222"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
251
+ <codeline lineno="223"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>()<sp/>:<sp/>data_(NULL),<sp/>rows_(0),<sp/>cols_(0)<sp/>{}</highlight></codeline>
252
+ <codeline lineno="224"><highlight class="normal"></highlight></codeline>
253
+ <codeline lineno="225"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rows,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cols)<sp/>:<sp/>rows_(rows),<sp/>cols_(cols)<sp/>{</highlight></codeline>
254
+ <codeline lineno="226"><highlight class="normal"><sp/><sp/><sp/><sp/>data_<sp/>=<sp/>(T*)malloc(<ref refid="classdub_1_1_t_mat_1affa049645f25277333d2d000051c762f" kindref="member">size</ref>()<sp/>*<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(T));</highlight></codeline>
255
+ <codeline lineno="227"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
256
+ <codeline lineno="228"><highlight class="normal"></highlight></codeline>
257
+ <codeline lineno="229"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>test<sp/>constructor<sp/>with<sp/>T<sp/>parameter</highlight><highlight class="normal"></highlight></codeline>
258
+ <codeline lineno="230"><highlight class="normal"><sp/><sp/><ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>(T<sp/>dummy)<sp/>{</highlight></codeline>
259
+ <codeline lineno="231"><highlight class="normal"></highlight></codeline>
260
+ <codeline lineno="232"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
261
+ <codeline lineno="233"><highlight class="normal"></highlight></codeline>
262
+ <codeline lineno="234"><highlight class="normal"><sp/><sp/>~<ref refid="classdub_1_1_t_mat" kindref="compound">TMat</ref>()<sp/>{</highlight></codeline>
263
+ <codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(data_)<sp/>free(data_);</highlight></codeline>
264
+ <codeline lineno="236"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
265
+ <codeline lineno="237"><highlight class="normal"></highlight></codeline>
266
+ <codeline lineno="240"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T2&gt;</highlight></codeline>
267
+ <codeline lineno="241" refid="classdub_1_1_t_mat_1a2be2ba15b604f9529a9fce4eff4379e9" refkind="member"><highlight class="normal"><sp/><sp/>T2<sp/>*<ref refid="classdub_1_1_t_mat_1a2be2ba15b604f9529a9fce4eff4379e9" kindref="member">give_me_tea</ref>()<sp/>{</highlight></codeline>
268
+ <codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>T2();</highlight></codeline>
269
+ <codeline lineno="243"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
270
+ <codeline lineno="244"><highlight class="normal"></highlight></codeline>
271
+ <codeline lineno="246" refid="classdub_1_1_t_mat_1affa049645f25277333d2d000051c762f" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><ref refid="classdub_1_1_t_mat_1affa049645f25277333d2d000051c762f" kindref="member">size</ref>()<sp/>{</highlight></codeline>
272
+ <codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_<sp/>*<sp/>cols_;</highlight></codeline>
273
+ <codeline lineno="248"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
274
+ <codeline lineno="249"><highlight class="normal"></highlight></codeline>
275
+ <codeline lineno="250"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>cols()<sp/>{</highlight></codeline>
276
+ <codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
277
+ <codeline lineno="252"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
278
+ <codeline lineno="253"><highlight class="normal"></highlight></codeline>
279
+ <codeline lineno="254"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>rows()<sp/>{</highlight></codeline>
280
+ <codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
281
+ <codeline lineno="256"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
282
+ <codeline lineno="257"><highlight class="normal"></highlight></codeline>
283
+ <codeline lineno="258"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>fill(T<sp/>value)<sp/>{</highlight></codeline>
284
+ <codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>dummy</highlight><highlight class="normal"></highlight></codeline>
285
+ <codeline lineno="260"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
286
+ <codeline lineno="261"><highlight class="normal"></highlight></codeline>
287
+ <codeline lineno="262"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>FunkyThing(</highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>v[7])<sp/>{</highlight></codeline>
288
+ <codeline lineno="263"><highlight class="normal"></highlight></codeline>
289
+ <codeline lineno="264"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
290
+ <codeline lineno="265"><highlight class="normal"></highlight></codeline>
291
+ <codeline lineno="266"><highlight class="normal"><sp/><sp/>T<sp/></highlight><highlight class="keyword">get</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>row,<sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>col)<sp/>{</highlight></codeline>
292
+ <codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>data_[row<sp/>*<sp/>cols_<sp/>+<sp/>col];</highlight></codeline>
293
+ <codeline lineno="268"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
294
+ <codeline lineno="269"><highlight class="normal"></highlight></codeline>
295
+ <codeline lineno="270"><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
296
+ <codeline lineno="271"><highlight class="normal"><sp/><sp/>T<sp/>*data_;</highlight></codeline>
297
+ <codeline lineno="272"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>rows_;</highlight></codeline>
298
+ <codeline lineno="273"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>cols_;</highlight></codeline>
299
+ <codeline lineno="274"><highlight class="normal">};</highlight></codeline>
300
+ <codeline lineno="275"><highlight class="normal"></highlight></codeline>
301
+ <codeline lineno="278"><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/>TMat&lt;float&gt;<sp/>FloatMat;</highlight></codeline>
302
+ <codeline lineno="279"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/>FloatMat<sp/>FMatrix;</highlight></codeline>
303
+ <codeline lineno="280"><highlight class="normal"></highlight></codeline>
304
+ <codeline lineno="281"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>dub</highlight><highlight class="normal"></highlight></codeline>
305
+ <codeline lineno="282"><highlight class="normal"></highlight></codeline>
306
+ <codeline lineno="283"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/>//<sp/>DOXY_GENERATOR_TEST_FIXTURES_APP_MATRIX_H_</highlight></codeline>
176
307
  </programlisting>
177
308
  <location file="/Users/gaspard/git/dub/test/fixtures/app/include/matrix.h"/>
178
309
  </compounddef>