I sent you an e-mail about how to get rid of the (*). Also I think using a function pointer template and then converting this (based on the already known class) would be much cleaner (and shorter) than the way you directly pass member function template arguments:
e.g. <MyType, int MyType::*(int, int), &MyType::memfunc> v.s. <MyType, int (int, int), &MyType::memfunc> Cheers, James On 23 January 2011 14:42, Stephan Beal <[email protected]> wrote: > Hello, fellow v8 hackers, > > i would like to announce a new v8-based project... > > v8::convert is a header-only v8 utility library with a very small focus: > > - Converting between v8 and native values, including client-defined types. > - Converting C/C++ functions/methods to v8::InvocationCallback > implementations. > > With those two features we have almost everything we need for most > class-binding purposes. The the ability to convert functions to have > v8::InvocationCallback signatures has proven especially useful, and allows > us to plug in in many C-standard or 3rd-party APIs with ease. Conversions > are compile-time typesafe where possible and runtime conversion failures > fail gracefully (e.g. by throwing a JS-side exception). > > The core components are in no way project-specific, and can be used in > conjunction with arbitrary other function/class binding mechanisms. Since > the implementation is header-only, it's particularly easy to include into > other projects. > > The API is trivial to use. The client API contains a good number of classes > and functions, but most client code needs only one or m/ore of the 5 main > function templates: CastToJS(), CastFromJS(), > FunctionToInvocationCallback(), MethodToInvocationCallback(), and > ConstMethodToInvocationCallback(). > > The missing parts are: > > - Binding JS accessors to native values/functions. i have the code in > v8-juice but need to port it to this API's conventions. > - A class binding mechanism which takes care of the WeakPointer bits. There > is such a mechanism in v8::convert, but it is not considered a core > component because hackers tend to each have their own favourite class > binding mechanism. > > > The code is largely a spin-off of the core-most v8-juice components, but > the function-binding parts were re-implemented from scratch so that we can > use function-pointer-style template parameters (which, IMO, are more > readable than the v8-juice's approach). Additionally, instead of inheriting > v8-juice's huge collection of weirdly-named function-binding templates, > clients now need only 3 templates to bind functions (one each for free > functions, const- and non-const member functions). > > The idea of doing a header-only spin-off has been brewing for some time, > but i was recently inspired to finally do the work by two other v8-users > list members: > > - James Pike: when i saw how vu8 takes advantage of function-pointer-style > template parameters, i just _had_ to have that feature for myself. > > - Fuzzy Spoon: the separation of const- and non-const member handling was > prompted by Fuzzy's report about MSVC not being able to select the proper > template specializations when the the member functions differ only in > constness. > > v8::convert is only about 3 nights old, but already has at least as much > API documentation as v8 itself. There is an overview and example code here: > > http://code.google.com/p/v8-juice/wiki/V8Convert > > The source code is here: > > http://code.google.com/p/v8-juice/source/browse/#svn/convert > > It includes a standalone demo application and a demo v8-juice plugin. > > Happy Hacking! > > -- > ----- stephan beal > http://wanderinghorse.net/home/stephan/ > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
