Re: Lua-cxx - C++11 APIs for creating Lua modules
"Rodrigo 'Skhaz' Delduca" <[email protected]> Thu, 29 May 2014 13:48:51 -0300
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <CAJNE8CnWPskBmLgQXVF1vUqAt4fD1wCH84cEmv2S7PFv5KoxYg@mail.gmail.com> |
YXdlc29tZSEKcmVhbGx5IGEgZ3JlYXQgam9iISBJJ2xsIHBvcnQgbXkgcHJvamVjdCB0aGF0IHVz ZSBsdWFiaW5kIHRvIGx1YS1jeHggc29vbgoKaHR0cDovL3d3dy5udWxsb25lcnJvci5vcmcvCi0t IGZsaXBwaW5nIGJpdHMgd2hpbHN0IHVwZGF0aW5nIHBpeGVscwoKCk9uIFdlZCwgTWF5IDI4LCAy MDE0IGF0IDg6NTMgUE0sIEFhcm9uIEZhYW5lcyA8ZGFmcml0b0BnbWFpbC5jb20+IHdyb3RlOgo+ IEhlbGxvIQo+Cj4gSSB3b3VsZCBsaWtlIHRvIHNoYXJlIEx1YS1jeHgsIGEgTUlULWxpY2Vuc2Vk IHByb2plY3QgdGhhdCBJIHdyb3RlIHRoYXQgYWlkcwo+IGluIHdyaXRpbmcgbW9kdWxlcyBhbmQg YmluZGluZ3MgZm9yIEx1YS4gSSBwb3N0ZWQgdGhpcyB0byB0aGUgTHVhIG1haWxpbmcKPiBsaXN0 LCBidXQgSSBmaWd1cmVkIHRob3NlCj4gd2hvIHVzZSBMdWFiaW5kIHdvdWxkIGJlIGludGVyZXN0 ZWQgdG8gc2VlIGFub3RoZXIgQysrIHRha2Ugb24gTHVhJ3MgQVBJLCBzbwo+IEkgZGVjaWRlZCB0 byBwb3N0IGhlcmUgYXMgd2VsbC4gOikKPgo+IENvbXBhcmVkIHRvIEx1YWJpbmQsIEx1YS1jeHgg aXMgbG93ZXItbGV2ZWwuIEx1YS1jeHggZG9lcyBub3QgaW50cm9kdWNlIGFuCj4gb2JqZWN0IG1v ZGVsIGZvciBMdWEsIG5vciBkb2VzIGl0IHVzZSBMdWFiaW5kJ3MgcG9saWN5IG1vZGVsIGZvciBh cmd1bWVudHMuCj4gSXQgZG9lcyB1c2UgdGVtcGxhdGVzIHdpZGVseSwgaW5jbHVkaW5nIHRob3Nl IGZlYXR1cmVzIGxpa2UgdmFyaWFkaWMKPiB0ZW1wbGF0ZXMgYWRkZWQgaW4gQysrMTEsIHRvIHBy b3ZpZGUgYSBzaW1pbGFyIGxldmVsIG9mIGV4cHJlc3NpdmUgcG93ZXIgYXMKPiBMdWFiaW5kLgo+ Cj4gTHVhLWN4eCwgbGlrZSBMdWFiaW5kLCBkb2Vzbid0IHByb3ZpZGUgYSBjb21wbGV0ZSBmYcOn YWRlIG92ZXIgTHVhJ3MgQyBBUEkuCj4gT24gdGhlIGNvbnRyYXJ5LCBJIGZpbmQgTHVhJ3MgQyBB UEkgdG8gYmUgYW1hemluZ2x5IHdlbGwtZGVzaWduZWQsIHNvIEkndmUKPiB0cmllZCB0byBlbnN1 cmUgdGhhdCBMdWEtY3h4IGNhbiBiZSBpbnRlcm1peGVkIGZyZWVseSB3aXRoIEx1YSdzIEMgQVBJ LiBJbgo+IGZhY3QsIG1vc3Qgb2YgdGhlIEx1YSBDIEFQSSBoYXMgbm8gYW5hbG9nIGluIEx1YS1j eHggLSBJIGp1c3QgdXNlIHRoZQo+IG9yaWdpbmFsLiA7KQo+Cj4gICAgIC8vIEFkZCBhbGwgYXJn dW1lbnRzCj4gICAgIGludCBhZGRfc2V2ZXJhbChsdWE6OnN0YXRlKiBjb25zdCBzdGF0ZSkKPiAg ICAgewo+ICAgICAgICAgLy8gR2V0IGVhY2ggYXJndW1lbnQKPiAgICAgICAgIGludCBzdW0gPSAw Owo+ICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbHVhX2dldHRvcChzdGF0ZSk7ICsraSkg ewo+ICAgICAgICAgICAgIHN1bSArPSBsdWE6OmdldDxpbnQ+KHN0YXRlLCBpKTsKPiAgICAgICAg IH0KPgo+ICAgICAgICAgLy8gUmV0dXJuIHRoZSB2YWx1ZQo+ICAgICAgICAgbHVhOjpwdXNoKHN0 YXRlLCBzdW0pOwo+ICAgICAgICAgbHVhX3JlcGxhY2Uoc3RhdGUsIDEpOwo+ICAgICAgICAgcmV0 dXJuIDE7Cj4gICAgIH0KPgo+IFRoYXQgYmVpbmcgc2FpZCwgdGhlcmUgYXJlIHNldmVyYWwgcGxh Y2VzIHdoZXJlIEx1YS1jeHggZ3JlYXRseSBzaW1wbGlmeQo+IGNvbW1vbiB0YXNrcy4gRm9yIGlu c3RhbmNlLCBMdWEgaGFzIGEgbnVtYmVyIG9mIGx1YV9wdXNoKiBmdW5jdGlvbnMgdGhhdCBjYW4K PiBiZSByZXBsYWNlZCB3aXRoIEx1YS1jeHgncyBsdWE6OnB1c2ggdGVtcGxhdGUgYW5kIGFwcHJv cHJpYXRlCj4gc3BlY2lhbGl6YXRpb25zLiBZb3UgY2FuIGV4dGVuZCB0aGlzIHNwZWNpYWxpemF0 aW9uIHdpdGggeW91ciBvd24gdHlwZXMsIGFuZAo+IEx1YS1jeHgncyBvdGhlciBmZWF0dXJlcyB3 aWxsIGltbWVkaWF0ZWx5IHN1cHBvcnQgdGhlbS4KPgo+IEMrKzExIGFkZGVkIHZhcmlhZGljIHRl bXBsYXRlcywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBhIHdheSB0byBwdXNoIGEKPiBm dW5jdGlvbiBvZiBhbnkgYXJpdHkgaW50byBMdWEgd2l0aG91dCBuZWVkaW5nIHRvIHdyaXRlIHRo ZSBtYXJzaGFsbGluZyBjb2RlCj4geW91cnNlbGYgb3IgcnVubmluZyBhIHByZXByb2Nlc3NvcjoK Pgo+IC8vIFN0YW5kYXJkIEMgQVBJIGlzLCBvZiBjb3Vyc2UsIHN1cHBvcnRlZAo+IGludCBjcmVh dGVfZm9vKGx1YTo6c3RhdGUqIGNvbnN0KTsKPiBsdWE6OnB1c2goc3RhdGUsIGNyZWF0ZV9mb28p Owo+Cj4gLy8gRnVuZGFtZW50YWwgdHlwZXMgd29yaywgdG9vCj4gaW50IHN1bShpbnQgYSwgaW50 IGIpOwo+IGx1YTo6cHVzaChzdGF0ZSwgc3VtKTsKPgo+IC8vIEFzIGFyZSBwb2ludGVycyB0byB1 c2VyZGF0YSBhbmQgY29udmVyc2lvbnMgdG8gQysrIHN0cmluZ3MuCj4gdm9pZCBjaGFuZ2VUaXRs ZShRV2luZG93KiB3aW5kb3csIGNvbnN0IHN0ZDo6c3RyaW5nJiB0aXRsZSk7Cj4gbHVhOjpwdXNo KHN0YXRlLCBjaGFuZ2VUaXRsZSk7Cj4KPiAvLyBFdmVuIGxhbWJkYXMgd29yayB0b28sIHdpdGgg YSBiaXQgb2YgaGVscAo+IGx1YTo6cHVzaF9mdW5jdGlvbjwgaW50KGludCwgaW50KSA+KHN0YXRl LCBbXShpbnQgZmlyc3QsIGludCBzZWNvbmQpIHsKPiAgICAgcmV0dXJuIGZpcnN0ICsgc2Vjb25k Owo+IH0pOwo+Cj4gQmV5b25kIHRoaXMsIEx1YS1jeHggYWxzbyBoYXMgb3V0LW9mLXRoZS1ib3gg c3VwcG9ydCBmb3IgUXQncyBRT2JqZWN0IG1vZGVsLAo+IGFzIHdlbGwgYXMgcnVkaW1lbnRhcnkg c3VwcG9ydCBmb3IgR3RrJ3MgR09iamVjdCBtb2RlbCwgc28geW91IGNhbiBwdXNoCj4gdGhlc2Ug dHlwZXMgYW5kIHRoZWlyIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgd2lsbCBhdXRvbWF0aWNhbGx5 IGJlIGV4cG9zZWQKPiB0byBMdWEuIFlvdSBjYW4gdGhlbiBzcGVjaWFsaXplIGZ1cnRoZXIgb24g YSBzcGVjaWZpYyBzdWJ0eXBlIHRvIGFkZAo+IGJlaGF2aW9yIG5vdCBwcm92aWRlZCBieSB0aGF0 IGxpYnJhcnkncyBtZXRhZGF0YS4KPgo+IEhlcmUncyBhIHNpbXBsZSBleGFtcGxlIG9mIHdoYXQg Y2FuIGJlIGRvbmU6Cj4KPiAgICAgLy8gQ3JlYXRlIGEgbmV3IEx1YSBlbnZpcm9ubWVudCB0byBw bGF5IHdpdGguCj4gICAgIGF1dG8gZW52ID0gbHVhOjpjcmVhdGUoKTsKPgo+ICAgICAvLyBJbnRy b2R1Y2UgYSBnbG9iYWwgaW50byBMdWEKPiAgICAgZW52WyJmb28iXSA9ICJObyB0aW1lIjsKPgo+ ICAgICAvLyBSdW4gc29tZSBMdWEgY29kZSBkaXJlY3RseQo+ICAgICBsdWE6OnJ1bl9zdHJpbmco ImFzc2VydChmb28gPT0gJ05vIHRpbWUnKSIpOwo+Cj4gICAgIC8vIFJldHJpZXZlIGEgZ2xvYmFs Cj4gICAgIGF1dG8gdmFsdWUgPSBlbnZbImZvbyJdLmdldDxzdGQ6OnN0cmluZz4oKTsKPgo+IEFu ZCBoZXJlJ3MgYW5vdGhlciwgbW9yZSBjb21wbGV4IHZhcmlhbnQgdGhhdCBzaG93cyBob3cgYSBM dWEgbW9kdWxlIGZvcgo+IFF0J3MgUVdpbmRvdyBjbGFzcyBjb3VsZCBiZSBjcmVhdGVkOgo+Cj4g ICAgICNpbmNsdWRlIDxsdWFjeHgvc3RhY2suaHBwPgo+ICAgICAjaW5jbHVkZSA8bHVhY3h4L3R5 cGUvc3RhbmRhcmQuaHBwPgo+ICAgICAjaW5jbHVkZSA8bHVhY3h4L3R5cGUvZnVuY3Rpb24uaHBw Pgo+Cj4gICAgICNpbmNsdWRlIDxRV2luZG93Pgo+Cj4gICAgIGludCBRV2luZG93X25ldyhsdWE6 OnN0YXRlKiBjb25zdCBzdGF0ZSkKPiAgICAgewo+ICAgICAgICAgaWYgKGx1YV9nZXR0b3Aoc3Rh dGUpID4gMSkgewo+ICAgICAgICAgICAgIGF1dG8gcGFyZW50ID0gbHVhOjpnZXQ8UU9iamVjdCo+ KHN0YXRlLCAyKTsKPiAgICAgICAgICAgICBsdWFfc2V0dG9wKHN0YXRlLCAwKTsKPgo+ICAgICAg ICAgICAgIGlmIChwYXJlbnQpIHsKPiAgICAgICAgICAgICAgICAgaWYgKHBhcmVudC0+aW5oZXJp dHMoIlFXaW5kb3ciKSkgewo+ICAgICAgICAgICAgICAgICAgICAgbHVhOjptYWtlPFFXaW5kb3c+ KHN0YXRlLAo+IHN0YXRpY19jYXN0PFFXaW5kb3cqPihwYXJlbnQpKTsKPiAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKPiAgICAgICAgICAgICAgICAgICAgIGx1YTo6bWFrZTxRV2luZG93PihzdGF0 ZSwKPiBzdGF0aWNfY2FzdDxRU2NyZWVuKj4ocGFyZW50KSk7Cj4gICAgICAgICAgICAgICAgIH0K PiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Cj4gICAgICAgICAgICAgfQo+Cj4gICAgICAgICAg ICAgLy8gT3RoZXJ3aXNlLCBmYWxsIHRocm91Z2gKPiAgICAgICAgIH0KPgo+ICAgICAgICAgLy8g Q3JlYXRlIGEgUVdpbmRvdyB3aXRoaW4gTHVhCj4gICAgICAgICBsdWE6Om1ha2U8UVdpbmRvdz4o c3RhdGUsIHN0YXRpY19jYXN0PFFXaW5kb3cqPihudWxscHRyKSk7Cj4gICAgICAgICByZXR1cm4g MTsKPiAgICAgfQo+Cj4gICAgIGludCBsdWFvcGVuX1FXaW5kb3cobHVhOjpzdGF0ZSogY29uc3Qg c3RhdGUpCj4gICAgIHsKPiAgICAgICAgIGx1YTo6dGhyZWFkIGVudihzdGF0ZSk7Cj4KPiAgICAg ICAgIGVudlsiUVdpbmRvdyJdID0gbHVhOjp2YWx1ZTo6dGFibGU7Cj4gICAgICAgICBlbnZbIlFX aW5kb3ciXVsibmV3Il0gPSBRV2luZG93X25ldzsKPgo+ICAgICAgICAgcmV0dXJuIDE7Cj4gICAg IH0KPgo+ICAgICAvLyBXaXRoaW4gTHVhCj4KPiAgICAgcmVxdWlyZSAiUVdpbmRvdyI7Cj4KPiAg ICAgbG9jYWwgd2luZG93ID0gUVdpbmRvdzpuZXcoKTsKPiAgICAgd2luZG93LndpZHRoID0gMzAw Owo+ICAgICB3aW5kb3cuaGVpZ2h0ID0gMzAwOwo+ICAgICB3aW5kb3cudGl0bGUgPSAiSGVsbG8s IHdvcmxkIjsKPiAgICAgd2luZG93OnNob3coKTsKPgo+IEkndmUgdHJpZWQgdG8gZG9jdW1lbnQg aXQgd2VsbCBhbmQga2VlcCB0aGluZ3MgdGlkeS4gVGhlIHNvdXJjZSBpbiB0b3RhbCBpcwo+IGFs bW9zdCA3LDAwMCBsaW5lcyBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cy4g VGhlIGRvY3VtZW50YXRpb24KPiBmb3IgZWFjaCBmaWxlIGNhbiBiZSBmb3JtYXR0ZWQgZm9yIGVh c2llciB2aWV3aW5nIHVzaW5nIHRoZSB0aW55IGJhc2ggc2NyaXB0Cj4gY2FsbGVkIGNwb2QuIEl0 J3MgaW4gLi9zcmMuIEl0IGp1c3QgZG9lcyBhIGZldyByZWdleGVzIHRvIG1ha2UgdGhlIHNvdXJj ZQo+IGxvb2sgbGlrZSBwZXJsZG9jIGFuZCBjYWxscyB0aGF0LCBzbyB5b3UnbGwgbmVlZCB0aGF0 IHRvby4KPgo+IFRoYW5rcyBmb3IgcmVhZGluZzsgSSBob3BlIHlvdSB0YWtlIGEgbG9vayEgVGhl IGRvY3VtZW50YXRpb24gaW4KPiBzcmMvc3RhY2suaHBwIG9yIHBlcmhhcHMgdGhlIHVuaXQgdGVz dHMgaW4gc3JjL3Rlc3RzL2NvcmUuY3BwIGFyZSBnb29kIGZpcnN0Cj4gcGxhY2VzIHRvIHN0YXJ0 Lgo+Cj4gaHR0cHM6Ly9naXRodWIuY29tL2RhZnJpdG8vbHVhLWN4eC5naXQKPgo+IC0tIEFhcm9u Cj4KPiAtLQo+IEFhcm9uIEZhYW5lcyA8ZGFmcml0b0BnbWFpbC5jb20+Cj4KPiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiBUaW1lIGlzIG1vbmV5LiBTdG9wIHdhc3RpbmcgaXQhIEdldCB5b3VyIHdl YiBBUEkgaW4gNSBtaW51dGVzLgo+IHd3dy5yZXN0bGV0LmNvbS9kb3dubG9hZAo+IGh0dHA6Ly9w LnNmLm5ldC9zZnUvcmVzdGxldAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gbHVhYmluZC11c2VyIG1haWxpbmcgbGlzdAo+IGx1YWJpbmQtdXNlckBs aXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0 cy9saXN0aW5mby9sdWFiaW5kLXVzZXIKPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRpbWUgaXMg bW9uZXkuIFN0b3Agd2FzdGluZyBpdCEgR2V0IHlvdXIgd2ViIEFQSSBpbiA1IG1pbnV0ZXMuCnd3 dy5yZXN0bGV0LmNvbS9kb3dubG9hZApodHRwOi8vcC5zZi5uZXQvc2Z1L3Jlc3RsZXQKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbHVhYmluZC11c2VyIG1h aWxpbmcgbGlzdApsdWFiaW5kLXVzZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlz dHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2x1YWJpbmQtdXNlcgo=