692393285d
Fix memory leaks
2022-05-15 19:19:56 +02:00
4d3dfce93f
Improve and cleanup make_foreign_class()
...
No need to have two versions of this.
Static assert when users specify ambiguous overloads.
Currently overloads are discriminated only by
parameter count, not types, so we need to enforce this.
2022-05-15 17:01:57 +02:00
a8cef95cb9
Rename function
...
I think this is the opposite of the code I'm working on
now, ie it's not called by wren to create a c++ object
but from c++ to create a wren object. I'll add an
example for this.
2022-05-15 16:19:42 +02:00
f67ec7afb1
Fix header installation
2022-05-15 16:09:18 +02:00
b8066a3f34
Add working example of constructor overloading
2022-05-15 16:03:29 +02:00
abbb3b3818
Clean up include directory structure
2022-05-15 15:41:00 +02:00
9921e59a6b
Add support for foreign constructor overload
...
Make vm_fun.hpp fun again by moving setters/getters
into a separate header.
Add new make_overloaded_foreign_class(), but code is still
untested and it's a work in progress at this point.
Interface will change.
2022-05-15 15:35:25 +02:00
996a089185
Add support for class constructor parameters
2022-05-15 02:40:41 +02:00
d3ad818b8e
Fix installation
2022-05-14 19:49:29 +02:00
036dd57524
Allow chaining calls to add_class_maker()
2022-05-14 18:06:35 +02:00
258237cbf3
Implement ClassManager
...
Very similar to CallbackManager in its functioning.
2022-05-14 17:06:25 +02:00
74670f4683
Extract consecutive strings logic into a separate class
...
This is going to be also used in the upcoming ClassManager class.
It also makes FullSignatureOwning less cluttered.
2022-05-14 16:20:50 +02:00
c2089568f3
Bugfixes and improvements, simplify examples
2022-04-29 18:35:46 +02:00
fa0183a3bf
Implement CallbackManager
...
With it users don't have to provide a foreign_method_fn()
function anymore, it's become optional.
2022-04-29 18:16:57 +02:00
7fcb89e459
Move more stuff to wren_types.hpp
2022-04-29 18:15:02 +02:00
edd5f27ab2
Build fix
2022-04-29 12:43:06 +02:00
5d6575f328
Add make_foreign_object() overload
...
It's only available when users define WRENPP_WITH_NAME_GUESSING
and it automatically retrieves the class name of T using
new code in guess_class_name.hpp. Only tested on gcc so far.
Microsoft compiler doesn't seem to understand consteval keyword.
2022-04-29 12:34:01 +02:00
a63a8c33d8
Add make_foreign_object() function.
...
It creates an instance of the given foreign class and
returns a pointer to it. The wren object is stored in
slot 0.
2022-04-29 12:34:01 +02:00
31ba3af348
Update copyright year
2022-04-28 22:56:11 +02:00
6f4b0ce094
Pass string_view instead of const char* to callback functions
2022-04-28 22:55:22 +02:00
e157607df6
Update copyright year on recently modified files
2022-04-24 03:43:19 +02:00
f749b7fb18
call() will fail earlier when object for call doesn't exist
2022-04-22 22:04:09 +02:00
0255edb8be
Update wren to latest and fix build
2022-04-22 22:02:59 +02:00
b4383e9449
Set slot in case caller didn't, or else why we get the object parameter?
2022-04-22 10:36:41 +02:00
cfc8bb89f8
Add convenience variable_ensure_slot
2021-02-12 14:43:25 +01:00
dc10c38a3f
Add reset() method
2021-02-12 14:43:25 +01:00
3c318d6771
Add a very simple test program
...
Not quite a unit test, it looks more like an example
but still something.
2021-02-02 14:04:27 +01:00
6a30725a62
Add arbitrary method to foreign_method_t conversion helper
...
It might not work in every case, you still are restricted
to types that set() and get() understand.
2020-05-03 12:23:06 +02:00
34d2317f11
Add support for foreign types to get()
...
wren::get() can now be used to get foreign types by pointer.
Invoking get<A>() will return an A*. With this change it's
now possible to use variables() to get mixed foreign
and core types.
2020-05-03 11:32:43 +02:00
90d93d2583
Add calendar example and supporting functions
2020-05-03 01:54:07 +02:00
cad9f96739
Add a reallocate_fn() to DefConfiguration implemented around new/delete
2020-05-02 23:28:48 +02:00
51c69e6343
__func__ is just the function name, ie "type_id", I need the whole signature to capture U as well
2020-05-01 18:34:36 +02:00
f5fcbd193a
Fix uninitialised pointers. Whoopsies!
2020-05-01 18:21:33 +02:00
f33900b351
Allow users to store a custom pointer into the VM object.
2020-05-01 17:44:09 +02:00
279a34237b
I don't see any reason to get a pointer, I want a ref instead
2020-05-01 01:53:53 +02:00
274a2fea11
Update sample code in main(), fix the rest as required
2020-05-01 01:39:11 +02:00
a3dcb583d7
Attach licence
2020-04-30 23:33:54 +02:00
4843ddd95e
Add overload for Handle
2020-04-30 23:18:41 +02:00
97514085cb
Add operator==
2020-04-30 23:05:35 +02:00
0f0d149ad2
Move public headers to a separate directory, make a library
2020-04-30 22:50:46 +02:00