ThePhD
e69e7c79fa
C++17 additions: std::variant, string_views of all types, checker for if we have the right version
...
added variadic_results, to return a variable number of arguments to Lua
added variadic_results and as_results
added improved function examples (for multiple results and split overloading out)
added tests for variadics
added tests for C++17 utilities
added a forwarding header
added a specific `unsafe_function` header
added and improved documetation pages
2017-07-09 12:54:52 -04:00
ThePhD
17271c84cb
BREAKING CHANGE: std::pair
for regular containers that are not marked as as_table_t
or as_nested
will now behave like regular containers and not force themselves to be key-value pairs. table-style serialization is still unaffected.
2017-06-23 18:07:24 -04:00
ThePhD
b811e73b90
who knew noexcept proofing would be so hard...? And there's so many places it could be activated in...!
2017-06-17 00:43:26 -04:00
ThePhD
11916a7c72
add noexcept function type barriers and guards
...
noexcept-proof function call trampolines
add noexcept tests to ensure its being checked
TODO: check g++ 7.1 builds when using -std=c++17 ...
2017-06-16 18:43:40 -04:00
ThePhD
090c834f2c
Let nullptr pass through, but we still can't do a conversion from lua_nil
to unique_usertype
s.
2017-06-07 11:02:47 -04:00
ThePhD
c6d11a2bac
fix index and newindex semantics on simple_usertypes
...
we do not have to hit the metatable by-name since we go to special lengths to ensure we have a simple usertype table we can use
2017-05-28 19:14:18 -04:00
ThePhD
34b81bef6b
Handle qualified name failures of VC++, where using
templates do not match the fully qualified names of what they alias to (Thanks, VC++)
2017-05-15 10:41:50 -04:00
ThePhD
58003669fb
this_environment is now live
2017-05-09 13:24:56 -04:00
ThePhD
a3d6f8044c
working stuff!~
2017-04-19 13:00:47 -04:00
ThePhD
2acc8bee14
get_environment, documentation updates, and tests
2017-04-18 20:23:20 -04:00
ThePhD
8c94cb730b
Fix static initialization order fiasco with meta_function_names
2017-04-04 16:16:22 -04:00
ThePhD
185f5ecc05
new travis environments to be tested out for osx stuff, plus new_table docs and environments on function calls
2017-04-02 22:37:01 -04:00
ThePhD
309325d0f5
New feature: environment plus documentation about the environment table and its usage with scripts.
2017-04-02 16:10:00 -04:00
ThePhD
59b196a1db
add a new kind of error handling script call, updating docs and examples
2017-03-31 17:38:04 -04:00
ThePhD
4094ba3e7a
New feature: nested
getter for complex nested tables, plus docs and example
2017-03-30 14:11:43 -04:00
ThePhD
791aecbcd0
New documentation for as_table and some container examples
2017-03-30 01:31:55 -04:00
ThePhD
dce8053248
Time to break everything.
...
Added the ability to extend all usertypes at runtime. The performance implications need to be examined closely.
variadic_args documentation was updated with the desired example demonstrating proper usage
usertype examples were updated demonstrating Lua runtime and C++ runtime updating of a usertype table
SOL_SAFE_FUNCTIONS is now part of the definitions and defined (thanks @eliasdaler)
2017-03-12 21:35:19 -04:00
ThePhD
ab9126d892
update customization points and track un-specialized structs to trigger some safe-guards as a back-compatible safety net
2017-02-20 18:07:02 -05:00
ThePhD
37420dcdc0
Documentation update about functions and new typedefs.
2017-02-16 02:05:49 -05:00
ThePhD
8d6f304bad
Update the name table and make sure there are pairs and next metamethod entries.
2017-02-01 06:29:45 -05:00
ThePhD
490194f767
allow va_args to work with overloading, albeit things can get... bad, with it. Need to observe this more to make sure things don't go poorly.
2017-01-09 16:38:23 -05:00
ThePhD
3aa42c5db8
update single
2016-12-16 05:31:32 -05:00
FYP
b1af00f048
fix thread_status::dead value for luajit
2016-12-16 12:20:28 +03:00
ThePhD
edeb81a7e1
Add registry constructors to tug things right out of the registry, and add a main_thread getter to aid in Joynet dev
2016-12-10 00:25:25 -05:00
ThePhD
d0a36c9657
objc define to keep code clean on that platform
2016-12-03 07:33:18 -05:00
ThePhD
289ded358c
-Wshadow and -Wconversion are kind've dumb
2016-11-25 20:47:15 -05:00
ThePhD
22e17eb9fd
Correct spelling is hard.
2016-11-13 04:21:24 -05:00
ThePhD
fbc0fc5f93
Properly word the exception documentation and made some proper links.
...
Update single and use proper wording.
2016-11-13 03:48:22 -05:00
Anand Aiyer
6e6cb675e2
SOL_LUAJIT_FULL_INTEROPERABILITY - If you are using a platform and
...
compiler that has full c++ exception interoperability
(http://luajit.org/extensions.html#exceptions ), define
SOL_LUAJIT_FULL_INTEROPERABILITY. This will prevent sol from catching
(...) errors - in platforms & compilers than have full c++ exception
interoperability Lua errors can be caught with catch (...) in C++ - in
these cases sol inaccurately prevents Lua errors from being propagated
correctly.
2016-11-13 12:02:29 +05:30
ThePhD
52f69a2653
Heavily improve documentation and add new container functions.
2016-11-05 20:08:07 -04:00
ThePhD
5193db55c3
allow for not-containers to be specified
...
Make sure tables of various sizes are kept working
2016-10-28 04:36:04 -04:00
ThePhD
a65f795b79
ipairs and pairs improved support, folding the registration table down to avoid duplicated code
2016-10-21 07:05:58 -04:00
ThePhD
b05ce97247
Allllll the fixes. All the time. Mostly to make sure constructors don't fight with each other and safety is respected. And documentation updates.
2016-10-01 01:27:40 -04:00
ThePhD
72a445ff6a
Some minor fixes and updates
2016-09-29 03:29:48 -04:00
ThePhD
d7b037da73
Sigh. Make sure that tuple expansion works in buggy VC++ compiler.
2016-09-26 04:02:03 -04:00
ThePhD
0e56783de9
Bark. I always forget things.
2016-09-14 00:02:15 -04:00
ThePhD
0de30f3b3a
Upgrading simple_usertype implementation with BREAKING changes. Docs now include that information too. as_function now works with usertypes for limited cases.
2016-09-13 12:37:08 -04:00
ThePhD
81ffb3f334
make sure proxies can be properly set to one another
2016-08-24 12:21:14 -04:00
ThePhD
cf76f6baa0
V E T T E D
...
Slight breaking change, but at the source level almost nothing changes (ipairs is the only thing that changes because for some reason it checks if what is passed is a table and that really doesn't make any fucking sense)
Closes #195
Closes #196
2016-08-23 21:42:27 -04:00
ThePhD
6243cbe103
push_reference should respect unique usertypes
2016-08-21 19:24:26 -04:00
ThePhD
ec97dac651
push_reference must respect unique_usertypes are primitives
2016-08-21 19:20:31 -04:00
ThePhD
045d9371df
customization points are now live
2016-07-29 00:57:47 -04:00
ThePhD
85daffaa00
Havin' lots of derps these days. Fix #141
2016-07-15 07:33:54 -04:00
ThePhD
27174aba9c
This mega-commit produces simple_usertype
to allow for faster compile times by avoiding the use of __index
internally. It sacrifices some speed and some storage optimizations and also does not allow variable syntax, but the produced table is directly modifiable.
...
Adds a `protect()` function to trigger safety for an item.
This commit also optimizes away all instances of virtual function calls for function calls and storage. Will need to test speed to see how it works out.
Closes #133
Closes #134
Closes #135
Closes #136
2016-07-07 16:52:39 -04:00
ThePhD
556be8da98
Documentation updates -- require function and add function and size function needed documentation
...
New `add` function as requested by @EliasD
2016-06-19 17:59:40 -04:00
ThePhD
e1241c110a
SPEED AND FIXES, HOOOOOOOOO!
2016-06-10 21:04:48 -04:00
ThePhD
c458849d29
Many of the tests are still busted, but we're getting closer.
...
Closes #96
Closes #79
Fixes #105 - but we still need to double-check and add a test to prove it
2016-06-06 15:46:53 -04:00
ThePhD
e35fe6be85
This mega-commit implements the new usertype_metatable
while keeping everything else still intact. Blurgh, managing API versions suck...
2016-06-03 21:40:23 -04:00
ThePhD
8fa48627c6
awhdwjakdahwd clang++ internal linkage qqqqqqq
2016-05-20 05:25:56 -04:00
ThePhD
9f019ae536
Adds requires feature - Closes #90
...
Function name for getting the status was actually changed to status in all places... being consistent, yay
2016-05-19 17:27:12 -04:00