Re: Trivial pointers result in unregistered class

rod haxton <[email protected]> Tue, 18 Jun 2013 14:07:40 -0400
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <CALz8gR98672fLTMs2H-ppSvKrBGvCk5foT8gf-RW3jAsw8w_hA@mail.gmail.com>
--===============9150825358520609573==
Content-Type: multipart/alternative; boundary=047d7bd763fcbff45304df7196ea

--047d7bd763fcbff45304df7196ea
Content-Type: text/plain; charset=ISO-8859-1

Can you try...

void setA(int nVal) { A = &nVal; }
int* getA(void) const { return A; }

static void registrate(lua_State *pLuaState)
{
// export our class with LuaBind
luabind::module(pLuaState) [
luabind::class_<Foo>("Foo")
.property("A", &Foo::getVal, &Foo::setVal)
];
}

public:
int *A;

LUA Script...

a = Foo.A
Foo.A = 10


On Tue, Jun 18, 2013 at 1:11 PM, Daniel Walter <
[email protected]> wrote:

> I think this does not fit my needs. "FooManager" does not have any
> public pointers that need to be accessed directly by lua. You are
> accessing your pointers through "getComponent" function.
>
> Can you expose "m_iFooVector" with something like this:
> ".def_readonly("iFooVector", &FooManager::m_iFooVector,
> luabind::return_stl_iterator)"
>
> And then iterate and access it in your lua script?
>
> for foo in fooManager.iFooVector do
>         print(foo.AnyField)
> end
>
> On 18.06.2013 19:01, rod haxton wrote:
> > Take a look at this. I do this and it works with a boost::ref on class,
> > see "FooManager".
> >
> > I know...I know...I hate when folks give you a lot of code to look at
> > for an example. But, perhaps you can glean something from looking at the
> > "FooManager" class, and see that I assign it as a global.
> >
> > //The registrate function takes a Class
> > // name and lua_State, then calls its registrate method
> > template <typename T>
> > void registrate(lua_State *pLuaState) {
> > T::registrate(pLuaState);
> > }
> >
> >
> > class FooManager
> > {
> > public:
> > FooManager() {};
> > ~FooManager() {};
> >
> > voidaddComponent(IFoo* pFoo) { m_iFooVector.push_back(pFoo); }
> > IFoo*getComponent(int nIndex) { return m_iFooVector[nIndex]; }
> >
> > static void registrate(lua_State *pLuaState)
> > {
> > luabind::module(pLuaState) [
> > luabind::class_<FooManager>("FooManager")
> > .def(luabind::constructor<>())
> > .def("getComponent", (IFoo*(FooManager::*) (int))
> &FooManager::getComponent)
> > ];
> > }
> >
> > void doAwake(void)
> > {
> > for(std::vector<IFoo*>::iterator it = m_iFooVector.begin(); it !=
> > m_iFooVector.end(); it++)
> > {
> > IFoo *pIFoo = *it;
> > pIFoo->Awake();
> > }
> > }
> >
> > void doUpdate(void)
> > {
> > for(std::vector<IFoo*>::iterator it = m_iFooVector.begin(); it !=
> > m_iFooVector.end(); it++)
> > {
> > IFoo *pIFoo = *it;
> > pIFoo->update();
> > }
> > }
> >
> > private:
> > std::vector<IFoo*> m_iFooVector;
> > };
> >
> > int main()
> > {
> > lua_State *myLuaState = luaL_newstate();
> >
> > // Connect LuaBind to this lua state
> > luabind::open(myLuaState);
> >
> > // open the lua libraries
> > luaL_openlibs(myLuaState);
> >
> > // register the luaBind classes
> > registrate<IFoo>(myLuaState);
> > registrate<Foo>(myLuaState);
> > registrate<Foo2>(myLuaState);
> > registrate<FooManager>(myLuaState);
> >
> > // create all the objects
> > Foo *pFoo = new Foo("Rod's Test: 1-2-3!", myLuaState);
> > Foo2 *pFoo2 = new Foo2("Zimba", myLuaState);
> > FooManager* pfooManager = new FooManager();
> >
> > pfooManager->addComponent(pFoo);
> > pfooManager->addComponent(pFoo2);
> > // set object manager global
> > luabind::globals(myLuaState)["fooManager"] = boost::ref(pfooManager);
> >
> > //reh 16jun13 the Game Manager will also pass the Instigator to the
> > call, i.e., doAwake(theInstigator). This way the object has the object
> > interacting with it.
> > pfooManager->doAwake();
> > pfooManager->doUpdate();
> >
> > lua_close(myLuaState);
> > // clean up
> > delete pFoo;
> > delete pFoo2;
> >
> > return 0;
> > }
> >
> >
> > On Tue, Jun 18, 2013 at 12:42 PM, Daniel Walter
> > <[email protected] <mailto:[email protected]>>
> > wrote:
> >
> >     hi rod,
> >     thank you for your answer.
> >     what about the struct "A" in my example? In my project I can not
> change
> >     struct "A" to use boost::ref or any getters. Of course, I could
> write a
> >     wrapper class, but this hurts.
> >
> >     Is there any other way?
> >
> >
> >     On 18.06.2013 18:17, rod haxton wrote:
> >      > give boost:ref a try...
> >      >
> >      > luabind::globals(L)["x"] = boost::ref(x);
> >      >
> >      >
> >      > On Tue, Jun 18, 2013 at 10:41 AM, Daniel Walter
> >      > <[email protected]
> >     <mailto:[email protected]>
> >     <mailto:[email protected]
> >     <mailto:[email protected]>>>
> >      > wrote:
> >      >
> >      >     Hi folks,
> >      >
> >      >     I have a struct with some pointers to trivial datatypes like
> >     this:
> >      >
> >      >     struct A {
> >      >           int* x;
> >      >           int* y;
> >      >     };
> >      >
> >      >     I bound it to lua like this:
> >      >
> >      >     luabind::module(L)
> >      >     [
> >      >            luabind::class_<A>("A")
> >      >           .def_readonly("x", &A::x)
> >      >           .def_readonly("y", &A::y)
> >      >     ];
> >      >
> >      >     If I am using this class in my lua script the runtime throws
> this
> >      >     exception: "Trying to use unregistered class"
> >      >     I managed this using a getter function returning the
> dereferenced
> >      >     pointer, but there must be a better way.
> >      >
> >      >     The same exception happens when i am using such an trivial
> >     pointer
> >      >     directly:
> >      >
> >      >     int* x = new int(42);
> >      >     luabind::globals(L)["x"] = x;
> >      >
> >      >     How to handle this? What i am missing?
> >      >
> >      >     Thanks in advance,
> >      >     Daniel
> >      >
> >      >
> >
> ------------------------------------------------------------------------------
> >      >     This SF.net email is sponsored by Windows:
> >      >
> >      >     Build for Windows Store.
> >      >
> >      > http://p.sf.net/sfu/windows-dev2dev
> >      >     _______________________________________________
> >      >     luabind-user mailing list
> >      > [email protected]
> >     <mailto:[email protected]>
> >      >     <mailto:[email protected]
> >     <mailto:[email protected]>>
> >      > https://lists.sourceforge.net/lists/listinfo/luabind-user
> >      >
> >      >
> >      >
> >      >
> >      >
> >
> ------------------------------------------------------------------------------
> >      > This SF.net email is sponsored by Windows:
> >      >
> >      > Build for Windows Store.
> >      >
> >      > http://p.sf.net/sfu/windows-dev2dev
> >      >
> >      >
> >      >
> >      > _______________________________________________
> >      > luabind-user mailing list
> >      > [email protected]
> >     <mailto:[email protected]>
> >      > https://lists.sourceforge.net/lists/listinfo/luabind-user
> >      >
> >
> >
> ------------------------------------------------------------------------------
> >     This SF.net email is sponsored by Windows:
> >
> >     Build for Windows Store.
> >
> >     http://p.sf.net/sfu/windows-dev2dev
> >     _______________________________________________
> >     luabind-user mailing list
> >     [email protected]
> >     <mailto:[email protected]>
> >     https://lists.sourceforge.net/lists/listinfo/luabind-user
> >
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> >
> >
> >
> > _______________________________________________
> > luabind-user mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/luabind-user
> >
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> luabind-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>

--047d7bd763fcbff45304df7196ea
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Can you try...<div><br></div><div><div><span class=3D"" st=
yle=3D"white-space:pre">	</span>void<span class=3D"" style=3D"white-space:p=
re">	</span>setA(int nVal) { A =3D &amp;nVal; }</div><div><span class=3D"" =
style=3D"white-space:pre">	</span>int*<span class=3D"" style=3D"white-space=
:pre">	</span>getA(void) const { return A; }</div>
<div><br></div><div><span class=3D"" style=3D"white-space:pre">	</span>stat=
ic void registrate(lua_State *pLuaState)</div><div><span class=3D"" style=
=3D"white-space:pre">	</span>{</div><div><span class=3D"" style=3D"white-sp=
ace:pre">		</span>// export our class with LuaBind</div>
<div><span class=3D"" style=3D"white-space:pre">		</span>luabind::module(pL=
uaState) [</div><div><span class=3D"" style=3D"white-space:pre">			</span>l=
uabind::class_&lt;Foo&gt;(&quot;Foo&quot;)</div><div><span class=3D"" style=
=3D"white-space:pre">			</span>.property(&quot;A&quot;, &amp;Foo::getVal, &=
amp;Foo::setVal)<br>
</div><div><span class=3D"" style=3D"white-space:pre">		</span>];</div><div=
><span class=3D"" style=3D"white-space:pre">	</span>}</div><div><br></div><=
div style>public:</div><div><span class=3D"" style=3D"white-space:pre">	</s=
pan>int *A;</div>
</div><div><br></div><div style>LUA Script...</div><div style><br></div><di=
v style>a =3D Foo.A</div><div style>Foo.A =3D 10</div></div><div class=3D"g=
mail_extra"><br><br><div class=3D"gmail_quote">On Tue, Jun 18, 2013 at 1:11=
 PM, Daniel Walter <span dir=3D"ltr">&lt;<a href=3D"mailto:daniel.walter@he=
lmundwalter.de" target=3D"_blank">[email protected]</a>&gt;</s=
pan> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">I think this does not fit my needs. &quot;Fo=
oManager&quot; does not have any<br>
public pointers that need to be accessed directly by lua. You are<br>
accessing your pointers through &quot;getComponent&quot; function.<br>
<br>
Can you expose &quot;m_iFooVector&quot; with something like this:<br>
&quot;.def_readonly(&quot;iFooVector&quot;, &amp;FooManager::m_iFooVector,<=
br>
luabind::return_stl_iterator)&quot;<br>
<br>
And then iterate and access it in your lua script?<br>
<br>
for foo in fooManager.iFooVector do<br>
=A0 =A0 =A0 =A0 print(foo.AnyField)<br>
end<br>
<div class=3D"im"><br>
On 18.06.2013 19:01, rod haxton wrote:<br>
&gt; Take a look at this. I do this and it works with a boost::ref on class=
,<br>
&gt; see &quot;FooManager&quot;.<br>
&gt;<br>
&gt; I know...I know...I hate when folks give you a lot of code to look at<=
br>
&gt; for an example. But, perhaps you can glean something from looking at t=
he<br>
&gt; &quot;FooManager&quot; class, and see that I assign it as a global.<br=
>
&gt;<br>
&gt; //The registrate function takes a Class<br>
&gt; // name and lua_State, then calls its registrate method<br>
&gt; template &lt;typename T&gt;<br>
&gt; void registrate(lua_State *pLuaState) {<br>
&gt; T::registrate(pLuaState);<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt; class FooManager<br>
&gt; {<br>
&gt; public:<br>
&gt; FooManager() {};<br>
&gt; ~FooManager() {};<br>
&gt;<br>
&gt; voidaddComponent(IFoo* pFoo) { m_iFooVector.push_back(pFoo); }<br>
</div>&gt; IFoo*getComponent(int nIndex) { return m_iFooVector[nIndex]; }<b=
r>
<div><div class=3D"h5">&gt;<br>
&gt; static void registrate(lua_State *pLuaState)<br>
&gt; {<br>
&gt; luabind::module(pLuaState) [<br>
&gt; luabind::class_&lt;FooManager&gt;(&quot;FooManager&quot;)<br>
&gt; .def(luabind::constructor&lt;&gt;())<br>
&gt; .def(&quot;getComponent&quot;, (IFoo*(FooManager::*) (int)) &amp;FooMa=
nager::getComponent)<br>
&gt; ];<br>
&gt; }<br>
&gt;<br>
&gt; void doAwake(void)<br>
&gt; {<br>
&gt; for(std::vector&lt;IFoo*&gt;::iterator it =3D m_iFooVector.begin(); it=
 !=3D<br>
&gt; m_iFooVector.end(); it++)<br>
&gt; {<br>
&gt; IFoo *pIFoo =3D *it;<br>
&gt; pIFoo-&gt;Awake();<br>
&gt; }<br>
&gt; }<br>
&gt;<br>
&gt; void doUpdate(void)<br>
&gt; {<br>
&gt; for(std::vector&lt;IFoo*&gt;::iterator it =3D m_iFooVector.begin(); it=
 !=3D<br>
&gt; m_iFooVector.end(); it++)<br>
&gt; {<br>
&gt; IFoo *pIFoo =3D *it;<br>
&gt; pIFoo-&gt;update();<br>
&gt; }<br>
&gt; }<br>
&gt;<br>
&gt; private:<br>
&gt; std::vector&lt;IFoo*&gt; m_iFooVector;<br>
&gt; };<br>
&gt;<br>
&gt; int main()<br>
&gt; {<br>
&gt; lua_State *myLuaState =3D luaL_newstate();<br>
&gt;<br>
&gt; // Connect LuaBind to this lua state<br>
&gt; luabind::open(myLuaState);<br>
&gt;<br>
&gt; // open the lua libraries<br>
&gt; luaL_openlibs(myLuaState);<br>
&gt;<br>
&gt; // register the luaBind classes<br>
&gt; registrate&lt;IFoo&gt;(myLuaState);<br>
&gt; registrate&lt;Foo&gt;(myLuaState);<br>
&gt; registrate&lt;Foo2&gt;(myLuaState);<br>
&gt; registrate&lt;FooManager&gt;(myLuaState);<br>
&gt;<br>
&gt; // create all the objects<br>
&gt; Foo *pFoo =3D new Foo(&quot;Rod&#39;s Test: 1-2-3!&quot;, myLuaState);=
<br>
&gt; Foo2 *pFoo2 =3D new Foo2(&quot;Zimba&quot;, myLuaState);<br>
&gt; FooManager* pfooManager =3D new FooManager();<br>
&gt;<br>
&gt; pfooManager-&gt;addComponent(pFoo);<br>
&gt; pfooManager-&gt;addComponent(pFoo2);<br>
&gt; // set object manager global<br>
&gt; luabind::globals(myLuaState)[&quot;fooManager&quot;] =3D boost::ref(pf=
ooManager);<br>
&gt;<br>
&gt; //reh 16jun13 the Game Manager will also pass the Instigator to the<br=
>
&gt; call, i.e., doAwake(theInstigator). This way the object has the object=
<br>
&gt; interacting with it.<br>
&gt; pfooManager-&gt;doAwake();<br>
&gt; pfooManager-&gt;doUpdate();<br>
&gt;<br>
&gt; lua_close(myLuaState);<br>
&gt; // clean up<br>
&gt; delete pFoo;<br>
&gt; delete pFoo2;<br>
&gt;<br>
&gt; return 0;<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Jun 18, 2013 at 12:42 PM, Daniel Walter<br>
</div></div>&gt; &lt;<a href=3D"mailto:[email protected]">dani=
[email protected]</a> &lt;mailto:<a href=3D"mailto:daniel.walter@h=
elmundwalter.de">[email protected]</a>&gt;&gt;<br>
<div class=3D"im">&gt; wrote:<br>
&gt;<br>
&gt; =A0 =A0 hi rod,<br>
&gt; =A0 =A0 thank you for your answer.<br>
&gt; =A0 =A0 what about the struct &quot;A&quot; in my example? In my proje=
ct I can not change<br>
&gt; =A0 =A0 struct &quot;A&quot; to use boost::ref or any getters. Of cour=
se, I could write a<br>
&gt; =A0 =A0 wrapper class, but this hurts.<br>
&gt;<br>
&gt; =A0 =A0 Is there any other way?<br>
&gt;<br>
&gt;<br>
&gt; =A0 =A0 On 18.06.2013 18:17, rod haxton wrote:<br>
&gt; =A0 =A0 =A0&gt; give boost:ref a try...<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; luabind::globals(L)[&quot;x&quot;] =3D boost::ref(x);<=
br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; On Tue, Jun 18, 2013 at 10:41 AM, Daniel Walter<br>
&gt; =A0 =A0 =A0&gt; &lt;<a href=3D"mailto:[email protected]">=
[email protected]</a><br>
&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:[email protected]">d=
[email protected]</a>&gt;<br>
</div>&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:daniel.walter@helmundwalter=
.de">[email protected]</a><br>
<div><div class=3D"h5">&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:daniel.wal=
[email protected]">[email protected]</a>&gt;&gt;&gt;<br>
&gt; =A0 =A0 =A0&gt; wrote:<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 Hi folks,<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 I have a struct with some pointers to trivial =
datatypes like<br>
&gt; =A0 =A0 this:<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 struct A {<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 =A0 =A0 =A0 int* x;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 =A0 =A0 =A0 int* y;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 };<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 I bound it to lua like this:<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 luabind::module(L)<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 [<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 =A0 =A0 =A0 =A0luabind::class_&lt;A&gt;(&quot;=
A&quot;)<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 =A0 =A0 =A0 .def_readonly(&quot;x&quot;, &amp;=
A::x)<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 =A0 =A0 =A0 .def_readonly(&quot;y&quot;, &amp;=
A::y)<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 ];<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 If I am using this class in my lua script the =
runtime throws this<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 exception: &quot;Trying to use unregistered cl=
ass&quot;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 I managed this using a getter function returni=
ng the dereferenced<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 pointer, but there must be a better way.<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 The same exception happens when i am using suc=
h an trivial<br>
&gt; =A0 =A0 pointer<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 directly:<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 int* x =3D new int(42);<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 luabind::globals(L)[&quot;x&quot;] =3D x;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 How to handle this? What i am missing?<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 Thanks in advance,<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 Daniel<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 --------------------------------------------------------------=
----------------<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 This SF.net email is sponsored by Windows:<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 Build for Windows Store.<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=
=3D"_blank">http://p.sf.net/sfu/windows-dev2dev</a><br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 ______________________________________________=
_<br>
&gt; =A0 =A0 =A0&gt; =A0 =A0 luabind-user mailing list<br>
&gt; =A0 =A0 =A0&gt; <a href=3D"mailto:[email protected]">=
[email protected]</a><br>
&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:[email protected]=
t">[email protected]</a>&gt;<br>
</div></div>&gt; =A0 =A0 =A0&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:luabi=
[email protected]">[email protected]</a><br>
<div class=3D"HOEnZb"><div class=3D"h5">&gt; =A0 =A0 &lt;mailto:<a href=3D"=
mailto:[email protected]">[email protected]=
et</a>&gt;&gt;<br>
&gt; =A0 =A0 =A0&gt; <a href=3D"https://lists.sourceforge.net/lists/listinf=
o/luabind-user" target=3D"_blank">https://lists.sourceforge.net/lists/listi=
nfo/luabind-user</a><br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 --------------------------------------------------------------=
----------------<br>
&gt; =A0 =A0 =A0&gt; This SF.net email is sponsored by Windows:<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; Build for Windows Store.<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=
=3D"_blank">http://p.sf.net/sfu/windows-dev2dev</a><br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt;<br>
&gt; =A0 =A0 =A0&gt; _______________________________________________<br>
&gt; =A0 =A0 =A0&gt; luabind-user mailing list<br>
&gt; =A0 =A0 =A0&gt; <a href=3D"mailto:[email protected]">=
[email protected]</a><br>
&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:[email protected]=
t">[email protected]</a>&gt;<br>
&gt; =A0 =A0 =A0&gt; <a href=3D"https://lists.sourceforge.net/lists/listinf=
o/luabind-user" target=3D"_blank">https://lists.sourceforge.net/lists/listi=
nfo/luabind-user</a><br>
&gt; =A0 =A0 =A0&gt;<br>
&gt;<br>
&gt; =A0 =A0 --------------------------------------------------------------=
----------------<br>
&gt; =A0 =A0 This SF.net email is sponsored by Windows:<br>
&gt;<br>
&gt; =A0 =A0 Build for Windows Store.<br>
&gt;<br>
&gt; =A0 =A0 <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=3D"_bla=
nk">http://p.sf.net/sfu/windows-dev2dev</a><br>
&gt; =A0 =A0 _______________________________________________<br>
&gt; =A0 =A0 luabind-user mailing list<br>
&gt; =A0 =A0 <a href=3D"mailto:[email protected]">luabind-=
[email protected]</a><br>
&gt; =A0 =A0 &lt;mailto:<a href=3D"mailto:[email protected]=
t">[email protected]</a>&gt;<br>
&gt; =A0 =A0 <a href=3D"https://lists.sourceforge.net/lists/listinfo/luabin=
d-user" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/luab=
ind-user</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ----------------------------------------------------------------------=
--------<br>
&gt; This SF.net email is sponsored by Windows:<br>
&gt;<br>
&gt; Build for Windows Store.<br>
&gt;<br>
&gt; <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=3D"_blank">http=
://p.sf.net/sfu/windows-dev2dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; luabind-user mailing list<br>
&gt; <a href=3D"mailto:[email protected]">luabind-user@lis=
ts.sourceforge.net</a><br>
&gt; <a href=3D"https://lists.sourceforge.net/lists/listinfo/luabind-user" =
target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/luabind-user=
</a><br>
&gt;<br>
<br>
---------------------------------------------------------------------------=
---<br>
This SF.net email is sponsored by Windows:<br>
<br>
Build for Windows Store.<br>
<br>
<a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=3D"_blank">http://p.=
sf.net/sfu/windows-dev2dev</a><br>
_______________________________________________<br>
luabind-user mailing list<br>
<a href=3D"mailto:[email protected]">[email protected]=
urceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/luabind-user" targe=
t=3D"_blank">https://lists.sourceforge.net/lists/listinfo/luabind-user</a><=
br>
</div></div></blockquote></div><br></div>

--047d7bd763fcbff45304df7196ea--


--===============9150825358520609573==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
--===============9150825358520609573==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user

--===============9150825358520609573==--